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,必须首先将它关闭
请问怎么修改
之后再进行while循环。
datavalue = System.Convert.ToString(cmd.ExecuteScalar());
发出异常
已有打开的与此命令相关联的 DataReader,必须首先将它关闭 这里的cmd命令已与下面的代码关联:
DbDataReader collireader = cmd.ExecuteReader();
解决方法是,你可以用另外一个cmd,代码见下参考
datavalue = System.Convert.ToString(cmd1.ExecuteScalar());
{
//在这里写你的代码试试
}