C# Windows注册表引擎部分的Excel项中的设置无效

C# Windows注册表引擎部分的Excel项中的设置无效,c#,csv,oledb,C#,Csv,Oledb,我有一个C#程序,它从csv文件导入数据,并将数据放入SQLServerCE数据库表(在本地C驱动器上)。该程序可在许多用户的机器上运行,但仍有少数用户不断出现错误: System.Data.OleDb.OleDbException (0x80004005): Invalid setting in Excel key of the Engines section of the Windows Registry. at System.Data.OleDb.OleDbConnectionIntern

我有一个C#程序,它从csv文件导入数据,并将数据放入SQLServerCE数据库表(在本地C驱动器上)。该程序可在许多用户的机器上运行,但仍有少数用户不断出现错误:

System.Data.OleDb.OleDbException (0x80004005): Invalid setting in Excel key of the Engines section of the Windows Registry. at
System.Data.OleDb.OleDbConnectionInternal..ctor(OleDbConnectionString constr, OleDbConnection connection) at
System.Data.OleDb.OleDbConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningObject) at
System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection(DbConnection owningConnection, DbConnectionPoolGroup poolGroup) at
System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection) at
System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory) at
System.Data.OleDb.OleDbConnection.Open() 
这是C代码:

string connStr = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + pathToFile + ";Extended Properties=Text;";
string sqlCmd = "SELECT * FROM [" + filenameOnly + "]";

using (OleDbConnection conn = new OleDbConnection(connStr))
{
  OleDbCommand cmd = new OleDbCommand(sqlCmd, conn);
  using (OleDbDataAdapter dadapt = new OleDbDataAdapter(cmd))
  {
     conn.Open();
     dadapt.TableMappings.Add("Table", dataSourceAlias);
     dadapt.Fill(ds);
     conn.Close();
  }
}
我已经尝试过几种方法:

string connStr = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + pathToFile + ";Extended Properties=Text;";
string sqlCmd = "SELECT * FROM [" + filenameOnly + "]";

using (OleDbConnection conn = new OleDbConnection(connStr))
{
  OleDbCommand cmd = new OleDbCommand(sqlCmd, conn);
  using (OleDbDataAdapter dadapt = new OleDbDataAdapter(cmd))
  {
     conn.Open();
     dadapt.TableMappings.Add("Table", dataSourceAlias);
     dadapt.Fill(ds);
     conn.Close();
  }
}
  • 已验证HKEY\U LOCAL\U MACHINE\SOFTWARE\Microsoft\Jet\4\Engines\Text是否已 格式键的“CSVDelimited”
  • 已验证用户是否拥有最新版本的Jet4.0(Msjet40.dll版本4.0.9511.0 Win dows XP SP3和安全公告MS08-028)
  • 已验证的HKEY_LOCAL_MACHINE\Software\Microsoft\Jet\4.0\Engines\Text的扩展名长度不超过4个字符
  • 但是,在所有这些之后,用户仍然无法导入csv文件数据,因为“Windows注册表引擎部分的Excel项中的设置无效”

    有什么建议吗?找到了解决方案。。。。。 注册表HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4\Engines\Text项UseZeroMaxScanAs已设置为“0”。。。。需要将其更改为“一”才能正常工作


    谢谢你的建议。

    你看到了吗:?我已经编辑了你的标题。请看“”,其中的共识是“不,他们不应该”。@DonBoitnott-谢谢你的建议。“我试过了,但还没修好。”@JohnSaunders-谢谢你更新标题。给您带来的不便,我深表歉意