
出错在哪?已有打开的与此命令相关联的 DataReader,必须首先将它关闭...有难度
网上下的源码调试不成功C#/.NET2。0的大师们看下代码错在哪怎么改善运行成功了我补够50分意思下........publicpartialclassadmin_sub...
网上下的源码 调试不成功
C#/.NET 2。0的大师们看下代码错在哪怎么改善
运行成功了我补够50分意思下.....
...
public partial class admin_subject_modify : System.Web.UI.Page
{
private OleDbConnection connection = new conn().CreateConnection();
protected void Page_Load(object sender, EventArgs e)
{
function.check();
string id = Request["id"].ToString();
try
{
OleDbCommand OleCmd = new OleDbCommand("SELECT [Subject],[qx] FROM XH_Subject WHERE [ID]=" + id, connection);
OleDbDataReader OleDr = OleCmd.ExecuteReader();
while (OleDr.Read())
{
subject.Text = OleDr.GetString(0).Trim();
qx.Text = OleDr.GetDateTime(1).ToString("yyyy-MM-dd HH:mm:ss", System.Globalization.DateTimeFormatInfo.InvariantInfo);
}
}
finally
{
connection.Close();
}
}
protected void save_Click(object sender, EventArgs e)
{
string id = Request["id"].ToString();
if (id == null || id == string.Empty)
{
function.showErr("参数值为空", Response, Request);
}
try
{
if (connection.State == ConnectionState.Closed)
{
connection.Open();
}
OleDbCommand OleCmd = new OleDbCommand("UPDATE XH_Subject SET [Subject]=\"" + function.nohtml(subject.Text.Trim()) + "\",[qx]=\"" + function.nohtml(qx.Text.Trim()) + "\" WHERE [ID]=" + id, connection);
OleDbDataReader OleDr = OleCmd.ExecuteReader();
OleCmd.ExecuteNonQuery(); //错在这儿 提示说 已有打开的与此命令相关联的 DataReader,必须首先将它关闭。
OleCmd.Dispose();
}
finally
{
connection.Close();
}
function.successMsg("修改成功了>>>>>>>.");
}
}
---------------------------------------------
已有打开的与此命令相关联的 DataReader,必须首先将它关闭。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.InvalidOperationException: 已有打开的与此命令相关联的 DataReader,必须首先将它关闭。
源错误:
行 59: OleDbCommand OleCmd = new OleDbCommand("UPDATE XH_Subject SET [Subject]=\"" + function.nohtml(subject.Text.Trim()) + "\",[qx]=\"" + function.nohtml(qx.Text.Trim()) + "\" WHERE [ID]=" + id, connection);
行 60: OleDbDataReader OleDr = OleCmd.ExecuteReader();
行 61: OleCmd.ExecuteNonQuery();
行 62: OleCmd.Dispose();
行 63:
while (OleDr.Read())
{
****
}
OleDr.Close() ;
这样子错误提示一样 还是说没关掉 展开
C#/.NET 2。0的大师们看下代码错在哪怎么改善
运行成功了我补够50分意思下.....
...
public partial class admin_subject_modify : System.Web.UI.Page
{
private OleDbConnection connection = new conn().CreateConnection();
protected void Page_Load(object sender, EventArgs e)
{
function.check();
string id = Request["id"].ToString();
try
{
OleDbCommand OleCmd = new OleDbCommand("SELECT [Subject],[qx] FROM XH_Subject WHERE [ID]=" + id, connection);
OleDbDataReader OleDr = OleCmd.ExecuteReader();
while (OleDr.Read())
{
subject.Text = OleDr.GetString(0).Trim();
qx.Text = OleDr.GetDateTime(1).ToString("yyyy-MM-dd HH:mm:ss", System.Globalization.DateTimeFormatInfo.InvariantInfo);
}
}
finally
{
connection.Close();
}
}
protected void save_Click(object sender, EventArgs e)
{
string id = Request["id"].ToString();
if (id == null || id == string.Empty)
{
function.showErr("参数值为空", Response, Request);
}
try
{
if (connection.State == ConnectionState.Closed)
{
connection.Open();
}
OleDbCommand OleCmd = new OleDbCommand("UPDATE XH_Subject SET [Subject]=\"" + function.nohtml(subject.Text.Trim()) + "\",[qx]=\"" + function.nohtml(qx.Text.Trim()) + "\" WHERE [ID]=" + id, connection);
OleDbDataReader OleDr = OleCmd.ExecuteReader();
OleCmd.ExecuteNonQuery(); //错在这儿 提示说 已有打开的与此命令相关联的 DataReader,必须首先将它关闭。
OleCmd.Dispose();
}
finally
{
connection.Close();
}
function.successMsg("修改成功了>>>>>>>.");
}
}
---------------------------------------------
已有打开的与此命令相关联的 DataReader,必须首先将它关闭。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.InvalidOperationException: 已有打开的与此命令相关联的 DataReader,必须首先将它关闭。
源错误:
行 59: OleDbCommand OleCmd = new OleDbCommand("UPDATE XH_Subject SET [Subject]=\"" + function.nohtml(subject.Text.Trim()) + "\",[qx]=\"" + function.nohtml(qx.Text.Trim()) + "\" WHERE [ID]=" + id, connection);
行 60: OleDbDataReader OleDr = OleCmd.ExecuteReader();
行 61: OleCmd.ExecuteNonQuery();
行 62: OleCmd.Dispose();
行 63:
while (OleDr.Read())
{
****
}
OleDr.Close() ;
这样子错误提示一样 还是说没关掉 展开
展开全部
用完OleDr.Read()之后记得将其关闭,语句为OleDr.Close()
在你的每一个 while (OleDr.Read()) 循环结束后都加上这句OleDr.Close()
第二个方法里:
OleDbDataReader OleDr = OleCmd.ExecuteReader();
OleCmd.ExecuteNonQuery(); //错在这儿 提示说 已有打开的与此命令相关联的 DataReader,必须首先将它关闭。
OleDbDataReader OleDr = OleCmd.ExecuteReader();这一句有什么用,有下面这一句OleCmd.ExecuteNonQuery(); 把那个OleDbDataReader OleDr = OleCmd.ExecuteReader();这句删了,应该是它与下面那句冲突了
在你的每一个 while (OleDr.Read()) 循环结束后都加上这句OleDr.Close()
第二个方法里:
OleDbDataReader OleDr = OleCmd.ExecuteReader();
OleCmd.ExecuteNonQuery(); //错在这儿 提示说 已有打开的与此命令相关联的 DataReader,必须首先将它关闭。
OleDbDataReader OleDr = OleCmd.ExecuteReader();这一句有什么用,有下面这一句OleCmd.ExecuteNonQuery(); 把那个OleDbDataReader OleDr = OleCmd.ExecuteReader();这句删了,应该是它与下面那句冲突了

2024-11-19 广告
这方面更多更全面的信息其实可以找下大雅新。深圳市大雅新科技有限公司从事KVM延长器,DVI延长器,USB延长器,键盘鼠标延长器,双绞线视频传输器,VGA视频双绞线传输器,VGA延长器,VGA视频延长器,DVI KVM 切换器等,优质供应商,...
点击进入详情页
本回答由大雅新科技有限公司提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询