2012-10-29 109 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」);如果你想格式化日期,然後再使用一個字符串列,並更新到該列和您需要保存的相同的東西。