asp.net的sqldatareader
publicSqlDataReaderGetCustomerOrders(StringcustomerID){SqlConnectionmyConnection=newS...
public SqlDataReader GetCustomerOrders(String customerID)
{
SqlConnection myConnection = new SqlConnection(ConfigurationSettings.AppSettings["ConnectionString"]);
SqlCommand myCommand = new SqlCommand("CMRC_OrdersList", myConnection);
myCommand.CommandType = CommandType.StoredProcedure;
SqlParameter parameterCustomerid = new SqlParameter("@CustomerID", SqlDbType.Int, 4);
parameterCustomerid.Value = Int32.Parse(customerID);
myCommand.Parameters.Add(parameterCustomerid);
myConnection.Open();
SqlDataReader result = myCommand.ExecuteReader(CommandBehavior.CloseConnection);
return result;
}
其中的这一句 myConnection.Open();
SqlDataReader result = myCommand.ExecuteReader(CommandBehavior.CloseConnection);
return result;
是返回sqldatareader对象,同时在关闭sqldatareader对象的时候关闭数据库连接.
我的问题是:程序什么时候关闭sqldatareader 对象呢.这个函数只是返回.
我在那里能看到sqldatareader.close()呢.还是它会自动关闭呢.请高手说说.谢谢 展开
{
SqlConnection myConnection = new SqlConnection(ConfigurationSettings.AppSettings["ConnectionString"]);
SqlCommand myCommand = new SqlCommand("CMRC_OrdersList", myConnection);
myCommand.CommandType = CommandType.StoredProcedure;
SqlParameter parameterCustomerid = new SqlParameter("@CustomerID", SqlDbType.Int, 4);
parameterCustomerid.Value = Int32.Parse(customerID);
myCommand.Parameters.Add(parameterCustomerid);
myConnection.Open();
SqlDataReader result = myCommand.ExecuteReader(CommandBehavior.CloseConnection);
return result;
}
其中的这一句 myConnection.Open();
SqlDataReader result = myCommand.ExecuteReader(CommandBehavior.CloseConnection);
return result;
是返回sqldatareader对象,同时在关闭sqldatareader对象的时候关闭数据库连接.
我的问题是:程序什么时候关闭sqldatareader 对象呢.这个函数只是返回.
我在那里能看到sqldatareader.close()呢.还是它会自动关闭呢.请高手说说.谢谢 展开
1个回答
展开全部
SqlDataReader result = myCommand.ExecuteReader(CommandBehavior.CloseConnection);
这里的CommandBehavior.CloseConnection会自动帮你关闭的
但是你现在还没有开始读datareader 何来的物弯关闭?你这个程序只是返回了一个dataReader对象 并没有开始读取里面的内容(既没有打开datareader,result.Read()),拿型那又何来的关闭datareader呢?当你关闭datareader时,数据库连接会自动关消蚂猜闭的。
当 DataReader 处于使用中时,关联的 Connection 正忙于为 DataReader 服务。当处于此状态时,除了关闭 Connection 外,不能对其执行其他任何操作。除非调用 DataReader 的 Close 方法,否则会一直处于此状态。如果创建了 DataReader 并将 CommandBehavior 设置为 CloseConnection,则关闭 DataReader 会自动关闭此连接。
这里的CommandBehavior.CloseConnection会自动帮你关闭的
但是你现在还没有开始读datareader 何来的物弯关闭?你这个程序只是返回了一个dataReader对象 并没有开始读取里面的内容(既没有打开datareader,result.Read()),拿型那又何来的关闭datareader呢?当你关闭datareader时,数据库连接会自动关消蚂猜闭的。
当 DataReader 处于使用中时,关联的 Connection 正忙于为 DataReader 服务。当处于此状态时,除了关闭 Connection 外,不能对其执行其他任何操作。除非调用 DataReader 的 Close 方法,否则会一直处于此状态。如果创建了 DataReader 并将 CommandBehavior 设置为 CloseConnection,则关闭 DataReader 会自动关闭此连接。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询