Npgsql抛出不正确的异常

时间:2015-11-24 15:03:11

标签: c# npgsql

Npgsql我遇到了一个奇怪的问题。我尝试删除具有外键并仍在使用的表中的记录。 Postgres的命令行给出了Key is still referenced错误,这是预期的。

但是,如果我尝试在我的应用程序中使用Npgsql执行此操作,则会出现以下异常:

  

后端发送了无法识别的响应类型:e

根据互联网上的消息来源,这很可能是由多线程引起的,但我不在此应用程序中使用其他线程。我检查了所有代码都在“主线程”上运行。

然后,如果我捕获该异常并尝试使用此代码再次查询我的数据库:

DataSet ds = new DataSet();
NpgsqlDataAdapter da = new NpgsqlDataAdapter(cmd);
ds.Reset();
da.Fill(ds);

我得到了这个例外:

  

如果底层流不可搜索,则读缓冲区不为空时,无法写入BufferedStream。确保此BufferedStream下面的流可以寻找或避免在此BufferedStream上交错读写操作。

我想要的只是抓住错误,告诉用户他不能删除记录并完成。现在,它没有充分理由取消整个应用程序。

1 个答案:

答案 0 :(得分:0)

这是Npgsql中的错误。我将DLL更新到2.2.7版本,现在我得到了正确的异常。