在批量复制之前将DBNull值插入DataTable列

时间:2014-03-19 20:22:23

标签: c# sql-server datatable

我有一个数据表,用于批量复制到SQL服务器数据库:我按如下方式定义其列:

dt.Columns.Add("BaseID", typeof(Int32));
dt.Columns.Add("ContractID", typeof(DateTime));
dt.Columns.Add("TermID",typeof(Int32));
dt.Columns.Add("Price",typeof(Decimal));
dt.Columns.Add("PeakType",typeof(String));

现在,PeakType列实际上可以是字符串,也可以为null。因此,当我向数据表添加行时,我会这样做。

DataRow row = dt.NewRow();
row["BaseID"] = baseID;
row["ContractDate"] = contractDate;
row["TermID"] = termID;
row["Price"] = price;
row["PeakType"] = peakType; //How would I assign If I want to assign DBNull?

如果peakType为null,如何指定DBNull.Value,以便我的批量复制可以在SQL Server表的列中正确插入null

1 个答案:

答案 0 :(得分:4)

使用null coalescing operator

row["PeakType"] = peakType ?? DBNull.Value;

如果peakType为null,则它将使用正确的DB null值。