C# OleDb与运行MS Office 2007的Windows 7冲突
该程序在运行MS Office 2007的Windows XP中运行得很好,但在运行MS Office 2007的Windows 7中运行得不好。所以我决定使用Microsoft.Ace,所以我使用了以下连接字符串:C# OleDb与运行MS Office 2007的Windows 7冲突,c#,.net,oledb,C#,.net,Oledb,该程序在运行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;
string connString = "Provider=Microsoft.ACE.OLEDB.12.0;"
+ "Data Source=\"" + strDir + "\\\";"
+ "Extended Properties=\"text;HDR=YES;IMEX=1\"";
string connString = "Provider=Microsoft.Jet.OLEDB.4.0;"
+ "Data Source=\"" + strDir + "\\\";"
+ "Extended Properties=\"text;HDR=Yes;FMT=Delimited\"";
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.ACE.OLEDB.12.0;"
+ "Data Source=\"" + strDir + "\\\";"
+ "Extended Properties=\"text;HDR=YES;IMEX=1\"";
string connString = "Provider=Microsoft.Jet.OLEDB.4.0;"
+ "Data Source=\"" + strDir + "\\\";"
+ "Extended Properties=\"text;HDR=Yes;FMT=Delimited\"";
string connString = "Provider=Microsoft.ACE.OLEDB.12.0;"
+ "Data Source=\"" + strDir + "\\\";"
+ "Extended Properties=\"text;HDR=YES;IMEX=1\"";
我提出我的研究需要使用ACE,所以我使用了以下连接字符串:
string connString = "Provider=Microsoft.ACE.OLEDB.12.0;"
+ "Data Source=\"" + strDir + "\\\";"
+ "Extended Properties=\"text;HDR=YES;IMEX=1\"";
string connString = "Provider=Microsoft.Jet.OLEDB.4.0;"
+ "Data Source=\"" + strDir + "\\\";"
+ "Extended Properties=\"text;HDR=Yes;FMT=Delimited\"";
string connString = "Provider=Microsoft.ACE.OLEDB.12.0;"
+ "Data Source=\"" + strDir + "\\\";"
+ "Extended Properties=\"text;HDR=YES;IMEX=1\"";
但仍然没有帮助。请帮帮我!谢谢 这两个连接字符串用于不同类型的文件。
第一个用于文本文件,第二个用于Excel 2007 第一个使用目录名作为数据源,
第二个要求在
strDir
看
及
这可能是您现在在ACE上出现错误的原因。关于XP上的错误,我只能假设这与缺少JET/ACE驱动程序有关。在这种情况下,问题在于编译应用程序的平台。请看我在这里看到了您的答案,这也可能是我的问题吗?是的,这是可能的,但如果不知道您的确切错误消息,则无法确定。请发布错误消息Received这是异常get:microsoft.ace.oledb.12.0提供程序未在本地注册是的,这就是确切的症状。为任何CPU编译的应用程序,试图在64位操作系统上加载32位驱动程序,或者代码、操作系统和驱动程序库之间存在其他不匹配。然后,我将构建到x86,并在客户端的PC上尝试