2012-10-29 78 views
-1

我正在将excel表格导入到excel表格中的sql server db表格中: id | data(以mm/dd/yyyy表示的日期) 我能够将数据上传到db表格中,但我希望日期得到合并进入yyyy/mm/dd,然后再发送到数据库。我试了一段代码,但它没有工作正在从Excel中读取日期的格式日期?

 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

@Arbaaz:哪一行发生错误? –

+0

试过了你的建议,还是一样的错误,是否有可能它正在读取错误的列或什么东西,或者根本不读取称为数据的列呢? – Arbaaz

+0

@Daredev没有特定的行 – Arbaaz

回答

1

对于日期列,不可能在这里以不同的格式设置值ExcelRows [i] [“data”] = newDate.ToString(“yyyy/MM/dd”);如果你想格式化日期,然后再使用一个字符串列,并更新到该列和您需要保存的相同的东西。