问题描述
我有带 IMEX 选项的连接字符串(所有类型都转换为字符串):
strConnectionString = string.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=\"{0}\";Extended Properties=\"Excel 12.0 Xml;HDR=NO;IMEX=1;\";",strFile);
DataTable table = new DataTable(name);
string sql = "SELECT * FROM [" + name + "]";
OleDbDataAdapter sqlAdapter = new OleDbDataAdapter();
OleDbCommand selectCMD = new OleDbCommand(sql,sqlConn);
sqlAdapter.SelectCommand = selectCMD;
sqlAdapter.Fill(table);
当程序在第一台计算机上运行时,我得到类似字符串“31.03.2021”的日期。当程序在第二台计算机上运行时,我得到类似字符串“3/31/2021”的日期。
我无法在两台计算机上获取相同的日期格式。我已经尝试过:
-
在 Windows 设置中更改语言格式。
-
设置
Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");
-
设置
table.Locale = new CultureInfo("en-US");
没有任何帮助
解决方法
我找不到任何解决方案。所以我开始使用选项 IMEX=0 而不是 IMEX=1。 日期被正确读取为 DateTime 类型。