该程序在运行 MS Office 2007 的 Windows XP 中完美运行,但在运行 MS Office 2007 的 Windows 7 中无法运行。所以我决定使用 Microsoft.Ace,所以我使用了这个连接字符串:
string connString = "Provider=Microsoft.ACE.OLEDB.12.0;"
+ "Data Source=\"" + strDir + "\\\";"
+ "Extended Properties=\"text;HDR=YES;IMEX=1\"";
这是方法:
public DataTable Load(string path, int columnCount)
{
CreateSchema(path, columnCount);
DataTable dtData = new DataTable();
string fullPath = Path.GetFullPath(path);
string csvFile = Path.GetFileName(fullPath);
string directoryName = Path.GetDirectoryName(fullPath);
string query;
string connString = "Provider=Microsoft.ACE.OLEDB.12.0;"
+ "Data Source=\"" + directoryName + "\\\";"
+ "Extended Properties=\"text;HDR=YES;IMEX=1\"";
query = "SELECT * FROM " + csvFile;
OleDbDataAdapter dtAdapter = new OleDbDataAdapter(query, connString);
dtAdapter.Fill(dtData);
dtAdapter.Dispose();
return dtData;
}
我的主要问题是,当我使用此连接字符串时,该程序在运行 MS Office 2007 的 Windows XP 中运行,但不在运行 MS Office 2007 的 Windows 7 中运行:
string connString = "Provider=Microsoft.Jet.OLEDB.4.0;"
+ "Data Source=\"" + strDir + "\\\";"
+ "Extended Properties=\"text;HDR=Yes;FMT=Delimited\"";
我想出了我需要使用 ACE 的研究,所以我使用了这个 connectionString:
string connString = "Provider=Microsoft.ACE.OLEDB.12.0;"
+ "Data Source=\"" + strDir + "\\\";"
+ "Extended Properties=\"text;HDR=YES;IMEX=1\"";
但仍然没有帮助。请帮我!谢谢!