我正在将excel表导入到excelsheet具有的sql server db表中: id | data(以mm / dd / yyyy为单位的日期) 我能够将数据上传到数据库表,但我希望在将数据发送到数据库之前将日期记录到yyyy / mm / dd中。我尝试了一段代码,但它无法正常工作
DataTable dt7 = new DataTable();
dt7.Load(dr);
DataRow[] ExcelRows = new DataRow[dt7.Rows.Count];
// Bulk Copy to SQL Server
using (SqlBulkCopy bulkCopy = new SqlBulkCopy(sqlConnectionString))
{
bulkCopy.DestinationTableName = "ExcelTable";
dt7.Rows.CopyTo(ExcelRows, 0);
for (int i = 0; i < ExcelRows.Length; i++)//i represents the row
{
var oldDate = ExcelRows[i]["data"].ToString();
var newDate = Convert.ToDateTime(oldDate);
ExcelRows[i]["data"] = newDate.ToString("yyyy/MM/dd");
}
bulkCopy.WriteToServer(ExcelRows);
错误:字符串未被识别为有效的DateTime。 我已经尝试了数据库nvarchar,varchar,datetime中的所有3种数据类型。同样的错误
答案 0 :(得分:1)
对于日期列,不能在此处设置不同格式的值ExcelRows [i] [“data”] = newDate.ToString(“yyyy / MM / dd”);如果你想要格式化日期,那么再使用一个字符串列并更新到该列,同样需要保存。