2017-06-22 81 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'?但是,下一个问题与此无关。所以你可能想问另一个问题并插入所有相关的代码。 –

相关问题