我插入从类型化数据集的数据到我的MSSQL数据库使用SqlBuldCopy类:获取SqlBulkCopy.WriteToServer SQLDATETIME溢()
foreach (DataTable dt in ds.Tables)
{
using (SqlBulkCopy bulkCopy = new SqlBulkCopy(conn))
{
bulkCopy.DestinationTableName = "dbo." + dt.TableName + "_neu";
try
{
bulkCopy.WriteToServer(dt);
}
catch (Exception ex)
{
throw new FaultException("\n" + dt.TableName + ": " + ex.Message);
}
}
}
它的伟大工程。但是当我插入DataTime.MinValue到我的数据库时,我得到这个错误:SqlDateTime溢出。必须介于1/1/1753 12:00:00 AM和12/31/9999 11:59:59 PM之间。 有没有办法在foreach中说这样的话:如果数据集中的DateTime字段值是DateTime.MinValue,那么不要将数据集中的DateTime字段插入到我的数据库中?
问候
谢谢你的回答。我不控制数据表的人口。我从Web服务获取数据库。我怎么才能检查bulkCopy.WriteToServer(dt);如果DateTime字段不是DateTime.MinValue?如果在数据库中真正存储DBNull。 – 2009-12-15 09:28:27
您可以遍历每一行,并更改所有具有DateTime.MinValue的日期时间字段 – AdaTheDev 2009-12-15 09:38:45