我有一个参数表,其中有一个参数来说明我的程序是否应该运行,我试图获取该值来检查函数。
这是函数
private static bool shouldRun()
{
OracleCommand c = conn.CreateCommand();
c.CommandText = "select value from parameters where lower(name) = lower('valuetocheck')"; // this one doesn't work
//c.CommandText = "select 'Y' from dual"; - This one works
c.CommandType = System.Data.CommandType.Text;
OracleDataReader dr = c.ExecuteReader();
dr.Read();
string s = dr.GetString(0); // exception on this line
return false;
}
附加信息如下:
对关闭对象的无效操作
我已经尝试从双重中进行选择,正如您在上面看到的,它工作得很好,但是当我尝试运行实际查询时,它不喜欢它。我已经在 SQL Developer 中检查了查询,它工作正常。
我浏览过 SO 和其他网站,关于这个问题我能得到的唯一信息是该命令与连接无关,正如您在上面看到的那样。
我也尝试过这样做
OracleCommand c;
c.Connection = conn;
这也是行不通的。
任何对此的见解都会很棒,谢谢!
我最近也遇到了同样的问题。我得到了“对关闭的对象的无效操作”,但是当我调试代码时,它是Oracle数据读取器那是关闭的,而不是Oracle连接。我的问题是查询retuned
空响应和数据读取器如果没有数据则自行关闭。所以我的解决方案只是通过添加以下内容来检查数据读取器是否有任何行。
dro.Read();
if (dro.HasRows)
{
//Do your
}
我希望它能帮助某人。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)