为了账号安全,请及时绑定邮箱和手机立即绑定

需要帮助从可能为空值的列表创建数据表

需要帮助从可能为空值的列表创建数据表

C#
慕容森 2022-01-09 15:21:24
我需要一些帮助来编辑我的 DataTable 以处理可能的空值。在这种情况下,它们有可能将列表中的任何项目添加到 DataTable 为空。我正在寻找在创建 DataTable 时考虑这些空值的最佳方法,因此当我将其插入 MSSQL 时,我不会遇到错误。这是我用来生成数据表的代码:public DataTable ConvertListToCustomDataTable(List<RootObject> listOfItems){    DataTable table = new DataTable();    table.Columns.Add("DateCreated");    table.Columns.Add("DepthCode");    table.Columns.Add("DepthDateCreated");    table.Columns.Add("DepthLevel");    table.Columns.Add("DepthID");    table.Columns.Add("DepthCategoryName");    table.Columns.Add("DepthName");    table.Columns.Add("DepthCategoryDateUpdated");    table.Columns.Add("DepthDateUpdated");    table.Columns.Add("Name");    table.Columns.Add("ID");    table.Columns.Add("CategoryCode");    table.Columns.Add("CategoryDateCreated");    table.Columns.Add("CategoryDateUpdated");    table.Columns.Add("CategoryID");    table.Columns.Add("CategoryName");    table.Columns.Add("Code");    foreach (var item in listOfItems)    {        var row = table.NewRow();        row["DateCreated"] = item.DateCreated;        row["DepthCode"] = item.Depth.Code;        row["DepthDateCreated"] = item.Depth.DateCreated;        row["DepthLevel"] = item.Depth.Level;        row["DepthID"] = item.Depth.ID;        row["DepthCategoryName"] = item.Depth.Category.Name;        row["DepthName"] = item.Depth.Name;        row["DepthCategoryDateUpdated"] = item.Depth.Category.DateUpdated;        row["DepthDateUpdated"] = item.Depth.DateUpdated;        row["Name"] = item.Name;        row["ID"] = item.ID;        row["CategoryCode"] = item.Category.Code;        row["CategoryDateCreated"] = item.Category.DateCreated;        row["CategoryDateUpdated"] = item.Category.DateUpdated;        row["CategoryID"] = item.Category.ID;        row["CategoryName"] = item.Category.Name;        row["Code"] = item.Code;        table.Rows.Add(row);    }    return table;}
查看完整描述

1 回答

?
慕桂英546537

TA贡献1848条经验 获得超10个赞

您需要将表列设置为接受空值。


 DataColumn datecolumn = new DataColumn("DateCreated");

 datecolumn.AllowDBNull = true;

我会将列名放在一个数组中并循环遍历它们,即类似于此的东西。


DataTable table = new DataTable();


string[] column = { "DateCreated", "DepthCode", "DepthDateCreated" };


foreach (var item in column)

{

    DataColumn datecolumn = new DataColumn(item);

    datecolumn.AllowDBNull = true;

    table.Columns.Add(item);

}


查看完整回答
反对 回复 2022-01-09
  • 1 回答
  • 0 关注
  • 192 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号