ADO.NET 的 SQL类简介
在ADO.NET的SQL类是直接在TDS(Tabular Data Stream,表格数据流)协议上与Microsoft SQL Server进行通信的。TDS协议是SQL Server用来处理服务器与客户端通信的底层私有协议。由于不需要通过OLE DB 和 ODBC而直接通过TDS进行通信,所以通过SQL类在数据库访问上的性能有显著的提高。
SqlDataAdapter 注意事项
如果数据库连接没有打开,Fill方法会自动打开数据库连接,并且会自动关闭其打开的连接。但如果在调用Fill方法时数据库连接已经打开了,Fill方法并不会关闭连接。从而在重用同样的数据库连接时,避免了多次地打开和关闭数据库连接(这是资源密集型操作)。
指定命令的行为
在应用SqlDataReader 中使用CommandBehavior参数,可以进一步控制ExecuteReader()方法如何从数据库存检索的数据。
CommandBehavior枚举类型具有如下值:
CloseConnection——在DataReader关闭后,自动关闭已打开的数据库连接,在写数据层的时候很有用。
KeyInfo—————获取数据的列和主键。以For Browse子句来执行查询。
SchemaOnly———在不获取数据的情况下,检索列和数据表的架构查询。
SequentialAccess——允许访问包含大量信息的数据库的列。
SingleResult————把命令优化为只检索单个结果。
SingleRow————把命令优化为只检索单个行。如果返回了多个行,则把附加的那些行抛弃。它与SqlCommand.ExecuteScalar()方法不同是,ExecuteScalar()是返回一单个结果(即第一行的第一列的值),而SingleRow是一行。
检索数据表的架构信息
如果要检索包含在数据库中的列的信息,那么就可以使用DataReader类的GetSchemaTable()方法。GetSchemaTable()方法返回一个DataTable类的实例。
通常,要把GetSchemaTable()方法与CommandBehavior枚举类型的CommandBehavior.KeyInfo或CommandBehavior.SchemaOnly值一起使用。
……
conn.open();
dataReader1 = cmd.ExecuteReader(CommandBehavior.KeyInfo || CommandBehavior.SchemaOnly);
DataTable tb1 = dataReader1.GetSchemaTable();
DataGrid1.DataSoure = tb1;
DataGrid1.DataBind();
……
浙公网安备 33010602011771号