1.使用QueryString, 如....?id=1; response. Redirect()....
2.使用Session变量
3.使用Server.Transfer
4.使用Application
5.使用Cache
6使用HttpContext的Item属性
7.使用文件
8.使用数据库
9.使用Cookie
private : 私有成员, 在类的内部才可以访问(只能从其声明上下文中进行访问)。
protected : 保护成员,该类内部和从该类派生的类中可以访问。
public : 公共成员,完全公开,没有访问限制。
internal: 在同一命名空间内可以访问。 (很少用)
委托是将一种方法作为参数代入到另一种方法。
事件是一种特殊的委托。 //比如:onclick事件中的参数就是一种方法。
override 重写与 overload 重载的区别——重载是方法的名称相同。参数或参数类型不同,进行多次重载以适应不同的需要
Override 是进行基类中函数的重写。实现多态。
经典的冒泡排序法?
int[] array=new int[*];
int temp=0;
for(int i=0;i
{
for(int j=i+1;j
{
if(array[j]
{
temp=array[i];
array[i]=array[j];
array[j]=temp;
}
}
}
使用MVC模式分层
一般为3层
数据访问层,业务层,表示层。
数据访问层对数据库进行增删查改。
业务层一般分为二层,业务表观层实现与表示层的沟通,业务规则层实现用户密码的安全等。
表示层为了与用户交互例如用户添加表单。
优点: 分工明确,条理清晰,易于调试,而且具有可扩展性。
缺点: 增加成本。
托管代码是运行.NET 公共语言运行时CLR的代码
unsafe:非托管代码。不经过CLR运行。程序员自行分配和释放内存空间
DataSet:数据集。
DataCommand:执行语句命令。
DataAdapter:数据的集合,用语填充。
DataReader:数据只读器
Connection 数据库连接对像
Command 数据库命令
string str = null 是不给他分配内存空间,而string str = "" 给它分配长度为空字符串的内存空间。
class可以被实例化,属于引用类型,class可以实现接口和单继承其他类,还可以作为基类型,是分配在内存的堆上的
struct属于值类型,不能作为基类型,但是可以实现接口,是分配在内存的栈上的.
select ID from tablel where LastUpdataData=(select Max(lastUpdataData) from table1)
声明方法的存在而不去实现它的类被叫做抽象类(abstract class),它用于要创建一个体现某些基本行为的类,并为该类声明方法,但不能在该类中实现该类的情况。不能创建abstract 类的实例。然而可以创建一个变量,其类型是一个抽象类,并让它指向具体子类的一个实例。不能有抽象构造函数或抽象静态方法。Abstract 类的子类为它们父类中的所有抽象方法提供实现,否则它们也是抽象类为。取而代之,在子类中实现该方法。知道其行为的其它类可以在类中实现这些方法。
接口(interface)是抽象类的变体。在接口中,所有方法都是抽象的。多继承性可通过实现这样的接口而获得。接口中的所有方法都是抽象的,没有一个有程序体。接口只可以定义static final成员变量。接口的实现与子类相似,除了该实现类不能从接口定义中继承行为。当类实现特殊接口时,它定义(即将程序体给予)所有这种接口的方法。然后,它可以在实现了该接口的类的任何对象上调用接口的方法。由于有抽象类,它允许使用接口名作为引用变量的类型。通常的动态联编将生效。引用可以转换到接口类型或从接口类型转换,instanceof 运算符可以用来决定某对象的类是否实现了接口。
abstract 修饰词可用于类别、方法、属性、索引子 (Indexer) 和事件。在类别宣告里使用 abstract
饰词,表示该类别只是当做其它类别的基底类别而已。成员如果标记为抽象,或是包含在抽象类(Abstract Class) 内,则必须由衍生自此抽象类别的类别实作这个成员。
在静态属性上使用 abstract 修饰词是错误的。
在抽象方法宣告中使用 static 或 virtual 修饰词是错误的。
接口只包含方法、委派或事件的签章。方法的实作 (Implementation) 是在实作接口的类别中完成,
栈:由编译器自动分配、释放。在函数体中定义的变量通常在栈上。
堆:一般由程序员分配释放。用new、malloc等分配内存函数分配得到的就是在堆上。
GC是垃圾收集器。程序员不用担心内存管理,因为垃圾收集器会自动进行管理。要请求垃圾收集,可以调用下面的方法之一:
System.gc()
Runtime.getRuntime().gc()
会执行,在return前执行。
DataReader和DataSet最大的区别在于,DataReader使用时始终占用SqlConnection,在线操作数据库.任何对SqlConnection的操作都会引发DataReader的异常.因为DataReader每次只在内存中加载一条数据,所以占用的内存是很小的..因为DataReader的特殊性和高性能.所以DataReader是只进的.你读了第一条后就不能再去读取第一条了. DataSet则是将数据一次性加载在内存中.抛弃数据库连接.读取完毕即放弃数据库连接.因为DataSet将数据全部加载在内存中.所以比较消耗内存.但是确比DataReader要灵活.可以动态的添加行,列,数据.对数据库进行回传更新操作
using 引入名称空间或者使用非托管资源,使用完对象后自动执行实现了IDisposable接口的类的Dispose方法
new 新建实例或者隐藏父类方法
虚函数:没有实现的,可由子类继承并重写的函数。Virtual CallSomeOne();
抽象函数:规定其非虚子类必须实现的函数,必须被重写。public abstract void CallSomeOne();
初始化 加载视图状态 处理回发数据 加载 发送回发更改通知 处理回发事件 预呈现 保存状态 呈现 处置 卸载
Static Nested Class是被声明为静态(static)的内部类,它可以不依赖于外部类实例被实例化。而通常的内部类需要在外部类实例化后才能实例化。
<%# %>表示绑定的数据源
<% %>是服务器端代码块
A.Web Page B.Fill C.Sql05 D.Data Sourse E.DataGrid F.DataSet G.Select and Connect Commands H.Sql Data Adapter
a,e,d,f,h,g,b,c
.NET一般指 .NET FrameWork框架,它是一种平台,一种技术。
C#是一种编程语言,可以基于.NET平台的应用。
int Num=this.TextBox1.Text.ToString();
int Sum=0;
for(int i=0;i
{
if(i%2)==1)
{
Sum+=1;
}
else
{
Sum=Sum-1;
}
}
System.Consele.WriteLine(Sum.Tostring());
System.Consele.ReadLine();
CTS:通用语言系统。CLS:通用语言规范。CLR:公共语言运行库。
封装、继承、多态。
封装:用抽象的数据类型将数据和基于数据的操作封装在一起,数据被保护在抽象数据类型内部。
继承:子类拥有父类的所有数据和操作。
多态:一个程序中同名的不同方法共存的情况。有两种形式的多态– 重载与重写。
启动一个线程是调用start()方法,使线程所代表的虚拟处理机处于可运行状态,这意味着它可以由JVM调度并执行。这并不意味着线程就会立即运行。
run()方法可以产生必须退出的标志来停止一个线程。
异:不能直接实例化接口。接口不包含方法的实现。接口、类和结构可从多个接口继承。但是C# 只支持单继承:类只能从一个基类继承实现。类定义可在不同的源文件之间进行拆分。
同:接口、类和结构可从多个接口继承。接口类似于抽象基类:继承接口的任何非抽象类型都必须实现接口的所有成员。接口可以包含事件、索引器、方法和属性。一个类可以实现多个接口。
TCP---传输控制协议,提供的是面向连接、可靠的字节流服务。当客户和服务器彼此交换数据前,必须先在双方之间建立一个TCP连接,之后才能传输数据。TCP提供超时重发,丢弃重复数据,检验数据,流量控制等功能,保证数据能从一端传到另一端。
UDP---用户数据报协议,是一个简单的面向数据报的运输层协议。UDP不提供可靠性,它只是把应用程序传给IP层的数据报发送出去,但是并不能保证它们能到达目的地。由于UDP在传输数据报前不用在客户和服务器之间建立一个连接,且没有超时重发等机制,故而传输速度很快。
Web.config文件是一个XML文本文件,它用来储存 ASP.NET Web 应用程序的配置信息(如最常用的设置ASP.NET Web 应用程序的身份验证方式),它可以出现在应用程序的每一个目录中。当你通过VB.NET新建一个Web应用程序后,默认情况下会在根目录自动创建一个默认的Web.config文件,包括默认的配置设置,所有的子目录都继承它的配置设置。如果你想修改子目录的配置设置,你可以在该子目录下新建一个Web.config文件。它可以提供除从父目录继承的配置信息以外的配置信息,也可以重写或修改父目录中定义的设置。 1、
a) 列出各部门中工资不低于600元的职工的平均工资。
select dno , avg(salary) as average from emp where salary>=600 group by dno
b) 查询001号职工所在部门名称。
select DNAME from dept where DNO = (select DNO from emp where eno=’001’)
或者
select d.dname from dept as d left jon emp as e on e.dno = d.dno where e.eno=’001’
c)请用SQL语句将“销售部”的那些工资数额低于600的职工的工资上调10%。
update EMP set SALARY =SALARY*(1+0.1) where SALARY<600 and DNO = ( select DNO from dept where dname= ‘销售部’ )
end..........