找不到提供商。它可能没有正确安装。 C# 使用 CSV

Provider cannot be found. It may not be properly installed. C# using CSV

我们一直在使用 "simulates" 将 CSV 导入数据库的连接进行编程。
我们将它用于我们所有的应用程序,但现在我们需要在 Visual C# Express 2008 上进行编程,而我们之前使用的是 Visual Studio 2012.
我们将框架从 4.5 更改为 3.5,因为这是 Express 2008 可以使用的。
然后我们使用 Systems 删除了一些 "unneeded"。现在我们删除了 try 和 catch 以查看问题所在:"Provider cannot be found. It may not be properly installed."
这是错误的代码:

string fileNeem = Path.GetFileName(strFileName4);
string sepperator3 = Convert.ToString(textBox2.Text);
string root = Path.GetDirectoryName(strFileName4);
if (File.Exists(@"" + root + "/schema.ini")) { File.Delete(@"" + root + "/schema.ini"); }
string[] lines = { "[" + fileNeem + "]", "Format=Delimited(" + sepperator3 + ")", "DecimalSymbol=(,)" };
System.IO.File.WriteAllLines(@"" + root + "/schema.ini", lines);

ADODB.Connection oConn = new ADODB.Connection();
oConn.Open("Provider=Microsoft.Jet.OleDb.4.0; Data Source = " + System.IO.Path.GetDirectoryName(strFileName4) + "; Extended Properties = \"Text;HDR=YES;FMT=Delimited\";", "", "", 0);
string strQuery = "SELECT * FROM [" + System.IO.Path.GetFileName(strFileName4) + "]";
ADODB.Recordset rs3 = new ADODB.Recordset();
System.Data.OleDb.OleDbDataAdapter adapter = new System.Data.OleDb.OleDbDataAdapter();
rs3.Open(strQuery, "Provider=Microsoft.Jet.OleDb.4.0; Data Source = " + System.IO.Path.GetDirectoryName(strFileName4) + "; Extended Properties = \"Text;HDR=YES;FMT=Delimited\";",
ADODB.CursorTypeEnum.adOpenForwardOnly, ADODB.LockTypeEnum.adLockReadOnly, 0);
adapter.Fill(dtAttrSet, rs3);
dtAttrSet.Columns.Add("");
if (File.Exists(@"" + root + "/schema.ini")) { File.Delete(@"" + root + "/schema.ini"); }
rs3.Close();
oConn.Close();
gvAttributeSet.DataSource = dtAttrSet;
return dtAttrSet;

此外,我们使用 schema.ini 文件来存储分隔符。数据表填满后很快就会删除此文件。
我看到了很多问题和答案,但似乎是 ASP 或者他们使用 Excel.
我们做错了什么吗?

Steve 是对的:Provider=Microsoft.Jet.OleDb.4.0 仅在编译平台 x86 目标时有效。据我所知,没有办法解决这个问题,也没有计划增加支持。

然而,使用 ACE 64 是可行的 Provider=Microsoft.ACE.OLEDB.12.0 (link)