ghx88

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.KeyInfoCommandBehavior.SchemaOnly值一起使用。
        ……
        conn.open();
        dataReader1 = cmd.ExecuteReader(CommandBehavior.KeyInfo || CommandBehavior.SchemaOnly);
        DataTable tb1 = dataReader1.GetSchemaTable();
        DataGrid1.DataSoure = tb1;
        DataGrid1.DataBind();

        ……

posted on 2005-03-26 10:03  ghx88  阅读(263)  评论(0)    收藏  举报

导航