如果任何字段为NULL,如何使用LINQ将数据表复制到SQL

本文关键字:LINQ 数据表 复制 SQL 何使用 字段 任何 NULL 如果 | 更新日期: 2023-09-27 18:01:04

我有一个方法,可以将数据表从LINQ返回到SQL

我是

 public static DataTable LinqToDataTable<T>(IEnumerable<T> source)
   {
       DataTable output = new DataTable();
       try
       {
           PropertyInfo[] properties = typeof(T).GetProperties();
           foreach (var prop in properties)
           {
               output.Columns.Add(prop.Name, Nullable.GetUnderlyingType(
               prop.PropertyType) ?? prop.PropertyType);
           }
           foreach (var item in source)
           {
               DataRow row = output.NewRow();
               foreach (var prop in properties)
               {
                   row[prop.Name] = prop.GetValue(item, null) ?? DBNull.Value;
               }
               output.Rows.Add(row);
           }
       }
       catch (Exception ex)
       {
           MessageBox.Show(ex.Message);
       }
       return output;
   }

我的问题是,如果DateTime字段中的任何一个为空,这种方法将抛出一个异常作为

The null value cannot be assigned to a member with type System.DateTime which is a non-nullable value 

类型。

如何纠正错误。请任何人帮助我

如果任何字段为NULL,如何使用LINQ将数据表复制到SQL

将属性声明为DateTime怎么样。如果您有日期-时间属性,您可以将类型更改为DateTime?从DateTime。

您创建了一个DateTime类型的列,并试图将该列设置为null。