阅读器关闭时 FieldCount 的尝试无效。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.InvalidOperationException: 阅读器关闭时 FieldCount 的尝试无效。源错误:
行 44: dlHTDJ.DataValueField = "htdjid";
行 45: dlHTDJ.DataSource = htlbReader;
行 46: dlHTDJ.DataBind();
行 47:
行 48: CloseConnection();
源文件: h:\ASP.NET\WebSites\WebSite2\hetong\contractedit.aspx.cs 行: 46
====================================================================================源码是这样的,在页面的page_load里面,有
if (!IsPostBack) {
HTDJSql = "select htlbid,htlb from htlb order by htlbid";
OleDbDataReader htlbReader = GetDataReader(HTDJSql);
dlHTLB.DataTextField = "htlb";
dlHTLB.DataValueField = "htlbid";
dlHTLB.DataSource = htlbReader;
dlHTLB.DataBind();
CloseConnection();
//然后检索
HTDJSql = "select htdjid,htdj from htdj order by htdjid";
OleDbDataReader htdjReader = GetDataReader(HTDJSql);
dlHTDJ.DataTextField = "htdj";
dlHTDJ.DataValueField = "htdjid";
dlHTDJ.DataSource = htlbReader;
dlHTDJ.DataBind(); CloseConnection(); subDisplay();
}
其中调用了GetDataReader函数,这个函数的源码是: public OleDbDataReader GetDataReader(string sql)
{
OleDbCommand myCmd;
myCmd = new OleDbCommand(sql, conn); conn.Open();
return myCmd.ExecuteReader(); }这其中的conn是定义的public OleDbConnection conn; ,请问这个问题怎么解决?个人认为这个DataReader并没有关闭啊
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.InvalidOperationException: 阅读器关闭时 FieldCount 的尝试无效。源错误:
行 44: dlHTDJ.DataValueField = "htdjid";
行 45: dlHTDJ.DataSource = htlbReader;
行 46: dlHTDJ.DataBind();
行 47:
行 48: CloseConnection();
源文件: h:\ASP.NET\WebSites\WebSite2\hetong\contractedit.aspx.cs 行: 46
====================================================================================源码是这样的,在页面的page_load里面,有
if (!IsPostBack) {
HTDJSql = "select htlbid,htlb from htlb order by htlbid";
OleDbDataReader htlbReader = GetDataReader(HTDJSql);
dlHTLB.DataTextField = "htlb";
dlHTLB.DataValueField = "htlbid";
dlHTLB.DataSource = htlbReader;
dlHTLB.DataBind();
CloseConnection();
//然后检索
HTDJSql = "select htdjid,htdj from htdj order by htdjid";
OleDbDataReader htdjReader = GetDataReader(HTDJSql);
dlHTDJ.DataTextField = "htdj";
dlHTDJ.DataValueField = "htdjid";
dlHTDJ.DataSource = htlbReader;
dlHTDJ.DataBind(); CloseConnection(); subDisplay();
}
其中调用了GetDataReader函数,这个函数的源码是: public OleDbDataReader GetDataReader(string sql)
{
OleDbCommand myCmd;
myCmd = new OleDbCommand(sql, conn); conn.Open();
return myCmd.ExecuteReader(); }这其中的conn是定义的public OleDbConnection conn; ,请问这个问题怎么解决?个人认为这个DataReader并没有关闭啊
解决方案 »
- 服务器按钮点击后禁用问题
- 怎么获取访问这个网站的客户端的ip地址
- 管线事件!
- treeview中在节点设置NavigateUrl后,SelectedNodeStyle不起作用
- 问两个问题,关于datalist和dropdownlist的
- 有关于web发布后的问题,拜托哪位大虾指点一二
- 关于asp.net插件技术的实现原理
- ASP.NET读取图片的问题,很急在线等
- 关于web窗体上的web服务器控件不能显示
- 在asp.net中我在登陆时将值取到并放到一个类中我要是在每个页面调用这个类文件时都要取到登陆时的值,这个类如何写?
- 提取信息中的图片链接,这个表达式是不是不完善?
- 有这样的sql查询语句吗?应该怎样写
dlHTDJ.DataTextField = "htdj";
dlHTDJ.DataValueField = "htdjid";
dlHTDJ.DataSource = htlbReader;
==============================
写错了,应该是htdjReader
dlHTDJ.DataBind();CloseConnection();
现在还有一个错误,就是上面写的那个GetDataReader函数,返回的时候有错误:标准表达式中数据类型不匹配。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Data.OleDb.OleDbException: 标准表达式中数据类型不匹配。源错误:
行 77:
行 78: conn.Open();
行 79: return myCmd.ExecuteReader();
行 80:
行 81: }
源文件: h:\ASP.NET\WebSites\WebSite2\hetong\contractedit.aspx.cs 行: 79 return myCmd.ExecuteReader();//就是这一句
dlHTDJ.DataTextField = "htdj";
dlHTDJ.DataValueField = "htdjid";
dlHTDJ.DataSource = htlbReader;
===============================================
OleDbDataReader htdjReader = GetDataReader(HTDJSql);
dlHTDJ.DataTextField = "htdj";
dlHTDJ.DataValueField = "htdjid";
dlHTDJ.DataSource = htdjReader;