1

クラスの public nullable プロパティ (datetime) があるため、fastmember を使用して問題が発生していますが、それを db に挿入しようとすると、列の値が null ではなく空の文字列になり、例外が発生します。列の値をnullにする方法についてのアイデアはありますか?

public class MyClass
{
    public DateTime? MyDate {get;set;}
}

DataTable testTable = new DataTable();
using (var reader = ObjectReader.Create(myClassList))
{
    testTable.Load(reader);
}

 using (SqlConnection connection = new SqlConnection(ConfigurationManager.ConnectionStrings["connection"].ConnectionString))
 {
     SqlTransaction transaction = null;
     connection.Open();
     try
     {
         transaction = connection.BeginTransaction();
         using (var sqlBulkCopy = new SqlBulkCopy(connection, SqlBulkCopyOptions.TableLock, transaction))
         {
              sqlBulkCopy.BulkCopyTimeout = 0;
              sqlBulkCopy.BatchSize = batchSize;
              sqlBulkCopy.DestinationTableName = "myTable";
              for (var cols = 0; cols < testTable.Columns.Count; cols++)
              {
                   sqlBulkCopy.ColumnMappings.Add(cols, cols);
              }

              sqlBulkCopy.WriteToServer(testTable);
          }
          transaction.Commit();
      }
      catch (Exception ex)
      {
          transaction.Rollback();
          throw ex;
      }
  }

releaseate が null の場合、常に null ではなく空白文字列としてテーブルに入れられますが、強制的に null にする方法はありますか? または、SQL 一括コピーで空の文字列を null として解釈しますか?

4

1 に答える 1