我在尝试解决此错误时遇到问题:
已经有一个与此命令关联的打开DataReader,必须先关闭它。
我知道这个错误的含义以及我应该如何修复它,但每次在现有的NpgsqlCommand
上创建一个新的NpgsqlConnection
,当前一个命令尚未完成时,会发生此错误。
命令运行如下:
private object RunSelectScalar(NpgsqlCommand cmd) {
cmd.Connection = connection; // connection is a connected NpgsqlConnection
object result = cmd.ExecuteScalar();
return result;
}
object o = RunSelectScalar(new NpgsqlCommand("SELECT foo FROM bar LIMIT 1"));
所以,我不知道如何关闭它,或者使用using
,因为我没有指定DataReader
。
答案 0 :(得分:1)
添加
Preload Reader = true;
使用您的连接字符串。为我工作。
例如:
<add name="dbTestConnectionString" connectionString="Server=localhost;Database=dbNew3;User Id=postgres;Password=your_pass;Preload Reader = true;" providerName="Npgsql" />