如何使用 ItemArray 将 Null 值插入到 DataTable

Imr*_*zvi 1 c# ado.net

我编写的代码经过了良好的性能测试。

在代码中,我分割一个逗号分隔的字符串并将其分配给 DataTable 行的 ItemArray。

DataRow dr = dt.NewRow();
var itemArray = processedUliValue.Split(',');
dr.ItemArray = itemArray;
dt.Rows.Add(dr);
Run Code Online (Sandbox Code Playgroud)

稍后在代码中,我将根据选定的列名称将这些 itemArray 值转换为整数

如果任何列为空,我会收到异常。

所以我正在寻找在分配 itemArray 时将空值设置为 null ,我尝试在逗号分隔的字符串中使用 DBNull.Value 但它没有采用 null,我也尝试了 null 但也不起作用。

有没有办法使用此逗号分隔字符串将 null 分配给 ItemArray?

Den*_*nis 6

看起来您尝试存储的列DbNull.Value不允许为空。这对我有用:

        var dt = new DataTable
        {
            Columns =
                {
                    new DataColumn("Id", typeof(int)),
                    new DataColumn("FirstName", typeof(string)) { AllowDBNull = true },
                    new DataColumn("LastName", typeof(string)) { AllowDBNull = true },
                }
        };

        var row = dt.NewRow();

        row.ItemArray = "1,,Jones".Split(',').Select(s => string.IsNullOrEmpty(s) ? (object)DBNull.Value : (object)s).ToArray();

        dt.Rows.Add(row);
Run Code Online (Sandbox Code Playgroud)