我编写的代码经过了良好的性能测试。
在代码中,我分割一个逗号分隔的字符串并将其分配给 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?
看起来您尝试存储的列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)