我有一个C#应用程序,它使用NpgSQL与postgres数据库进行通信。但是,当我尝试使用包含NULL值的结果填充DataTable时,会抛出错误:
" System.Data.ConstraintException:'无法启用约束。一行或多行包含违反非空,唯一或外键约束的值。'"
即使我做的事情也是如此:
NpgsqlCommand statement = new NpgsqlCommand("SELECT NULL", connection);
NpgsqlDataReader resultReader = statement.ExecuteReader();
var table = new DataTable();
table.Load(resultReader);
在Visual Studio命令窗口中,table.GetErrors()[0]`给出:
{System.Data.DataRow}
HasErrors: true
ItemArray: {object[1]}
RowError: "Column '?column?' does not allow DBNull.Value."
RowState: Unchanged
Table: {}
这可以与this bug相关吗?
答案 0 :(得分:0)
问题是由我们的项目使用旧版本的NpgSQL(3.2.2)引起的。从版本3.2.3开始,此问题已得到解决。