2017-06-22 83 views
1

我遇到文件導入問題。我正在嘗試將一個.xls文件導入到SQL Server中。但問題是日期格式。 經過一些調試後,我發現我正在閱讀文本格式的日期。 我的日期是f.eg .: '01 -01-2017',但是當我調試時我看不到日期,我可以看到'42736',這是日期的文本格式。 任何人都可以幫助一些關於如何解決這個問題的想法?該字符串未被識別爲有效的DateTime。文本格式的日期

enter image description here

string strDate = table.Rows[i][2].ToString(); 
    DateTime date = Convert.ToDateTime(strDate.Replace(".", "-")); 


ImportToAP(Int32.Parse((table.Rows[i][26]).ToString()), date, Double.Parse((table.Rows[i][38]).ToString()), (table.Rows[i][33]).ToString(), Int32.Parse((table.Rows[1][4]).ToString())); 
+0

什麼是什麼,你都用於轉換練成表的代碼? –

+0

https://stackoverflow.com/q/727466/5779732確切副本 –

+1

[如何將Excel序列日期號碼轉換爲.NET DateTime?](https://stackoverflow.com/questions/727466/how-do-i-convert-an-excel-serial-date-number-to-a-net-datetime) –

回答

3

使用DateTime.FromOADate

DateTime date = DateTime.FromOADate(table.Rows[i].Field<double>(2)); 

如果這真是一個字符串列(我懷疑):

DateTime date = DateTime.FromOADate(double.Parse(table.Rows[i].Field<string>(2))); 
+0

謝謝你的回答。它是一個字符串列,您的代碼可以幫助您,但它只會將文檔的最後一行導入到數據庫中。 – Michelle

+0

@Michelle:真的是一個字符串,或者只是因爲你已經使用了'ToString'?但是,下一個問題與此無關。所以你可能想問另一個問題並插入所有相關的代碼。 –

相關問題