0

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 フィールドのいずれかが null の場合、このメソッドは例外をスローすることです。

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

タイプ。

エラーを修正する方法。誰か助けてください

4

1 に答える 1

1

プロパティをDateTimeとして宣言するのはどうですか?。日時プロパティがある場合はいつでも、タイプをDateTimeに変更できますか?DateTimeから。

DateTime型の列を作成し、その列にnullを設定しようとしています。

于 2013-02-25T12:12:25.747 に答える