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