C#odbcDataReader的问题

chenquan0818 2009-12-25 01:15:54

DbDataReader collireader = cmd.ExecuteReader();
while (collireader.Read())
{

try {
string collivluesql = "select " + collireader[0] + " from dip_data_cwbb where ehid=" + ehid;//通过EHID以及指标 来取得指标对应的值
cmd.CommandText = collivluesql;



datavalue = System.Convert.ToString(cmd.ExecuteScalar());
}

catch(DbException ex) {

continue;

}

Operasql = "insert into DOM_SRC_REPORT(COMPANYID,USENO,DATANO,DATAVALUE,datetiem)values('" + companyid + "','" + System.Convert.ToString(n_useno) + "','" + collireader[0] + "','" + datavalue + "',to_date('" + System.DateTime.Now + "','yyyy-mm-dd hh24:mi:ss'))";//插入数据


cmd.CommandText = Operasql;
cmd.ExecuteNonQuery();
status = 1;

}

collireader.Close();


}


DbDataReader 当处理的是OracleDataReader的时候 程序没有错,也没有异常
但是 当处理的是ODBCDataReader时

datavalue = System.Convert.ToString(cmd.ExecuteScalar());
发出异常
已有打开的与此命令相关联的 DataReader,必须首先将它关闭


请问怎么修改
...全文
148 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
stning 2009-12-25
  • 打赏
  • 举报
回复
using(DbDataReader collireader = cmd.ExecuteReader())
{
//在这里写你的代码试试
}
andy1118 2009-12-25
  • 打赏
  • 举报
回复

datavalue = System.Convert.ToString(cmd.ExecuteScalar());
发出异常
已有打开的与此命令相关联的 DataReader,必须首先将它关闭


这里的cmd命令已与下面的代码关联:
DbDataReader collireader = cmd.ExecuteReader();
解决方法是,你可以用另外一个cmd,代码见下参考
datavalue = System.Convert.ToString(cmd1.ExecuteScalar());
chenquan0818 2009-12-25
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 net_lover 的回复:]
你可以先把collireader读取到DataTable里,collireader.Close();
之后再进行while循环。


[/Quote]
问题是 ORACLE可以成功,为啥ODBC不行呢。。。
孟子E章 2009-12-25
  • 打赏
  • 举报
回复
你可以先把collireader读取到DataTable里,collireader.Close();
之后再进行while循环。

111,120

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧