C# 如何使用ItemArray向DataTable插入空值
我已经编写了经过性能测试的代码 在代码中,我将分割一个逗号分隔的字符串,并将其分配给DataTable行的ItemArrayC# 如何使用ItemArray向DataTable插入空值,c#,ado.net,C#,Ado.net,我已经编写了经过性能测试的代码 在代码中,我将分割一个逗号分隔的字符串,并将其分配给DataTable行的ItemArray DataRow dr = dt.NewRow(); var itemArray = processedUliValue.Split(','); dr.ItemArray = itemArray; dt.Rows.Add(dr); 在代码的后面部分,我将根据选定的列名将这些itemArray值转换为整数 在这里,如果任何列为空,我将得到异常 因此,我正在寻找在分配item
DataRow dr = dt.NewRow();
var itemArray = processedUliValue.Split(',');
dr.ItemArray = itemArray;
dt.Rows.Add(dr);
在代码的后面部分,我将根据选定的列名将这些itemArray值转换为整数
在这里,如果任何列为空,我将得到异常
因此,我正在寻找在分配itemArray时将空值设置为null的方法,我尝试在逗号分隔的字符串中使用DBNull.Value,但没有使用null,我也尝试了null,但也不起作用
是否有任何方法可以使用此逗号分隔的字符串将null分配给ItemArray?看起来您试图将
DbNull.Value
存储到的列不允许使用null。这对我很有用:
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);
看起来您试图将
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);
为什么不在将列值转换为int之前检查列值是否为空?这样似乎更简单。为什么不在将列值转换为int之前检查列值是否为空?这样似乎更简单。为此,我必须编写额外的代码来拆分字符串,并为每列分配一个值并检查null,我有许多列,我正在寻找更简单的方法,因为我必须编写额外的代码来拆分字符串,为每列分配一个值并检查null,我有很多专栏,我正在寻找更简单的方法,我会尝试,但这似乎是最好的答案我会尝试,但似乎这是最好的答案