首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

底下的代码,为什么第1个不需要手动关闭数据库连接,第2个却需要?第2个不手动关闭连接行吗

2011-12-12 
下面的代码,为什么第1个不需要手动关闭数据库连接,第2个却需要?第2个不手动关闭连接行吗?下面的代码,为什

下面的代码,为什么第1个不需要手动关闭数据库连接,第2个却需要?第2个不手动关闭连接行吗?
下面的代码,为什么第1个不需要手动关闭数据库连接,第2个却需要?第2个不手动关闭连接行吗?即把    


1).
System.Data.IDataReader   dataReader   =   dbCommand.ExecuteReader

(System.Data.CommandBehavior.CloseConnection);
改成
System.Data.IDataReader   dataReader   =   dbCommand.ExecuteReader();


      System.Data.DataSet   GetProductsDataSet()   {
                        string   connectionString   =   "Provider=Microsoft.Jet.OLEDB.4.0;   Ole   DB   Services=-4;   Data  

Source=C:\\BEGASPNET11\\ "   +
        "data\\Northwind.mdb ";
                        System.Data.IDbConnection   dbConnection   =   new   System.Data.OleDb.OleDbConnection

(connectionString);
       
                        string   queryString   =   "SELECT   [Products].[ProductName],   [Categories].[CategoryName]   FROM  

[Products],   [Ca "   +
        "tegories]   WHERE   ([Categories].[CategoryID]   =   [Products].[CategoryID]) ";
                        System.Data.IDbCommand   dbCommand   =   new   System.Data.OleDb.OleDbCommand();
                        dbCommand.CommandText   =   queryString;
                        dbCommand.Connection   =   dbConnection;
       
                        System.Data.IDbDataAdapter   dataAdapter   =   new   System.Data.OleDb.OleDbDataAdapter();
                        dataAdapter.SelectCommand   =   dbCommand;
                        System.Data.DataSet   dataSet   =   new   System.Data.DataSet();
                        dataAdapter.Fill(dataSet);
       
                        return   dataSet;
                }


2).

                System.Data.IDataReader   GetProductsReader()   {
                        string   connectionString   =   "Provider=Microsoft.Jet.OLEDB.4.0;   Ole   DB   Services=-4;   Data  

Source=C:\\BEGASPNET11\\ "   +
        "data\\Northwind.mdb ";
                        System.Data.IDbConnection   dbConnection   =   new   System.Data.OleDb.OleDbConnection

(connectionString);

                        string   queryString   =   "SELECT   [Products].[ProductName],   [Products].[QuantityPerUnit],  



[Products].[UnitPr "   +
        "ice],   [Products].[UnitsInStock]   FROM   [Products] ";
                        System.Data.IDbCommand   dbCommand   =   new   System.Data.OleDb.OleDbCommand();
                        dbCommand.CommandText   =   queryString;
                        dbCommand.Connection   =   dbConnection;

                        dbConnection.Open();
                        System.Data.IDataReader   dataReader   =   dbCommand.ExecuteReader

(System.Data.CommandBehavior.CloseConnection);

                        return   dataReader;
                }
                void   Page_Load(Object   sender,   EventArgs   e)   {
            DataGrid1.DataSource   =   GetProductsReader();
            DataGrid1.DataBind();
        }

[解决办法]
友情UP
[解决办法]
只要是datareader就要,dataset可以不用
[解决办法]
只要你手动开了就得手动关

热点排行