我在使用 fastmember 时遇到问题,我的班级有一个公共可为空的属性(日期时间),但是当我尝试将其插入数据库时,列值是空字符串而不是 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 批量复制中的空值?