关键字不支持"提供商"错误

Moh*_*oth 6 c# connection-string sql-server-2000 .net-3.5

c#.Net 3.5带有SQL Server 2000后端,我的app.config文件中有一个连接字符串,如下所示

<add name="MFG_ConnectionString" 
  connectionString="Provider=SQLOLEDB;Data Source=MFG;Persist Security Info=True;Password=kb1234;User ID=kb;Initial Catalog=MFG" 
  providerName="System.Data.OleDb" /> 
Run Code Online (Sandbox Code Playgroud)

此连接字符串是使用数据源配置向导构建的.使用此方法创建数据集并拖动DataSource元素以创建DataGridView将填充并成功允许所有CRUD操作.

但是,我不打算通过数据绑定表单对其进行更改.我希望在代码的幕后做这件事.由于这是SQL Server的旧版本,我假设我必须使用OleDbConnection和其他OleDb对象来完成工作.当我尝试执行以下操作时:

OleDbConnection visualConnection = new OleDbConnection(ConfigurationManager.ConnectionStrings["MFG_ConnectionString"].ConnectionString);
Run Code Online (Sandbox Code Playgroud)

我得到一个例外:"关键字不支持'提供者'.
但是如果我拿出提供者我被告知我必须提供一个.不知道为什么这可以通过表单上的数据集工作但我无法创建自己的连接对象.. . 有什么想法吗?

编辑应该注意的是,当我最初创建与此数据库的连接时,它告诉我,我尝试连接的数据库不支持SqlConnection,我必须选择另一个(我当时选择OleDb).我很奇怪这个连接在幕后工作,如连接字符串中没有提供者的SqlConnection,但数据集然后中断...

Joe*_*nos 1

SqlConnection与 SQL 2000 配合良好。您可以在此处获取连接字符串示例

  • 更改为 SqlConnection 给了我同样的错误,所以我进去并取出字符串的 Provider 部分,它工作正常。现在我正试图找出原因。如果我更改连接字符串以排除提供程序,则数据集将停止正常运行。是否有两个连接字符串的唯一解决方案,一个用于数据集,另一个用于手动连接? (2认同)