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()呢.还是它会自动关闭呢.请高手说说.谢谢
展开
 我来答
syrenq
2007-05-18 · TA获得超过434个赞
知道小有建树答主
回答量:349
采纳率:0%
帮助的人:340万
展开全部
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 会自动关闭此连接。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式