汇总:ADO.NET使用Connection对象连接数据库,使用Command或DataAdapter对象来执行SQL语句,并将执行的结果返回给DataReader或DataSet,然后再使用取得的DataReader或DataSet对象操作数据结果。
1. Connection:主要用来开启程序与数据库之间的连接。其中Close()为关闭连接,之后可使用Open()打开;Dispose()为释放连接,要操作数据库就要重新连接数据库。
语法:
SqlConnection conn=new SqlConnection("Data Source=.;Initial Catalog=Xk;Persist Security Info=True;User ID=sa;Password=sa;");
conn.Open();//打开连接
conn.Close();//关闭连接
conn.Dispose();//释放连接
2. Command:主要用来对数据库发出一些指令,例如可以对数据库发出增删改查的指令,或调用存在数据库中的存储过程等。该对象是建立在Connection对象之上的,即Command对象需要连接到数据库之后才可以操作数据库中的数据。
常见方法:
public override int ExecuteNonQuery(),执行一个SQL语句,返回受影响的行数。执行增、删、改操作。
public SqlDataReader ExcuteReader(),执行一个查询的SQL语句,返回一个DataReader对象。
public override Object ExecuteScalar(),从数据库中检索单个值,主要用于统计操作。
3. DataAdapter:负责数据的填充(Fill)、更新(Update)等。主要是在数据源与DataSet之间执行数据库传输工作,它可以透过Command对象下达命令后,然后将取得的数据通过DataAdapter对象调用Fill()方法填充到DataSet对象中。
语法:
SqlDataAdapter dataAdapter = new SqlDataAdapter(sql,conn);
dataAdapter.Fill(dataTable);//填充数据表
或者
DataSet dataSet = new DataSet();
dataAdapter.Fill(dataSet,"table1");//填充数据集中table1表
4. DataSet:一个暂存区(Cache),可以把从数据库中所查询到的数据保存起来,放在内存中。
DataSet包含若干DataTable,DataTable包含若干DataRow(数据行)和DataColumn(数据列);
可透过DataAdapter对象取得一些例如主键等的数据表结构,并可以记录数据表间的关联;
但是该对象架构在DataAdapter对象上,本身不具备和数据源沟通的能力。
5. DataReader:只读,每次只读取一行。特点:节省资源、效率很高、降低网路的负载。
语法:
SqlDataReader sdr=cmd.ExcuteReader(CommandBehavior.CloseConnection);
CommandBehavior.CloseConnection在关闭Reader的同时关闭connection。