从NpgSQL

时间:2017-06-14 18:00:34

标签: c# postgresql datatable npgsql

我有一个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相关吗?

1 个答案:

答案 0 :(得分:0)

问题是由我们的项目使用旧版本的NpgSQL(3.2.2)引起的。从版本3.2.3开始,此问题已得到解决。