ASP.net 有关DataReader 发生冲突
while(next){if(reader.Read()){stringkk=reader["messageId"].ToString();Response.Write(...
while (next)
{
if (reader.Read())
{
string kk = reader["messageId"].ToString();
Response.Write(kk + "嗨");
cmOrder.CommandText = " update messagePad set messageId='" + orderNum+"' where messageId='"+kk+"'";
}
else
{
next = false;
}
reader.Close();//问题行
cmOrder.ExecuteNonQuery();
orderNum += 1;
}
这段代码中,若不加 reader.close(),报错为"已有打开的与此命令相关联的 DataReader,必须首先将它关闭。" 如果加了 reader.close()还是会报错-阅读器关闭时尝试调用 Read 无效。 想了好久都不知道怎么解决,哪位高手指点下.不胜感激. 展开
{
if (reader.Read())
{
string kk = reader["messageId"].ToString();
Response.Write(kk + "嗨");
cmOrder.CommandText = " update messagePad set messageId='" + orderNum+"' where messageId='"+kk+"'";
}
else
{
next = false;
}
reader.Close();//问题行
cmOrder.ExecuteNonQuery();
orderNum += 1;
}
这段代码中,若不加 reader.close(),报错为"已有打开的与此命令相关联的 DataReader,必须首先将它关闭。" 如果加了 reader.close()还是会报错-阅读器关闭时尝试调用 Read 无效。 想了好久都不知道怎么解决,哪位高手指点下.不胜感激. 展开
1个回答
展开全部
reader对象只读向前访问数据。reader对象依赖的Connection不能再用来执行其他Command命令。所以你的代码段会报“已有打开的与此命令相关联的 DataReader,必须首先将它关闭。” 错误提示。
解决方法如下:
1、reader跟cmOrder两个对象不要共用一个Connection对象。
2、不要在while代码段内执行reader.Close();语句。否则继续执行while代码段内语句会报“阅读器关闭时尝试调用 Read 无效。”错误提示。
解决方法如下:
1、reader跟cmOrder两个对象不要共用一个Connection对象。
2、不要在while代码段内执行reader.Close();语句。否则继续执行while代码段内语句会报“阅读器关闭时尝试调用 Read 无效。”错误提示。
网易云信
2023-12-06 广告
2023-12-06 广告
UIkit是一套轻量级、模块化且易于使用的开源UI组件库,由YOOtheme团队开发。它提供了丰富的界面元素,包括按钮、表单、表格、对话框、滑块、下拉菜单、选项卡等等,适用于各种类型的网站和应用程序。UIkit还支持响应式设计,可以根据不同...
点击进入详情页
本回答由网易云信提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询