2011-03-18 56 views
6

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" /> 

此連接字符串與內置數據源配置嚮導。用這個創建一個數據集並拖動DataSource元素來創建一個DataGridView填充併成功地允許所有的CRUD操作。

但是,我不打算通過數據綁定表單進行更改。我期待在代碼背後做到這一點。由於這是SQL Server的舊版本,我假設我必須使用OleDbConnection和其他OleDb對象來完成工作。當我嘗試執行以下操作:

OleDbConnection visualConnection = new OleDbConnection(ConfigurationManager.ConnectionStrings["MFG_ConnectionString"].ConnectionString); 

我得到一個異常:「不支持關鍵字‘供應商’
然而,如果我拿出提供商有人告訴我,我必須提供一個不知道爲什麼這通過表單中的數據集的作品但我不能創建自己的連接對象......什麼想法?

編輯應當注意的是,當我最初創建這個數據庫的連接,它告訴我,我的數據庫試圖連接到不支持SqlConnection,我必須選擇另一個(我當時選擇的是OleDb)。這對我來說很奇怪nnection工作的場面背後的SqlConnection不提供在連接字符串中但隨後的數據集打破...

回答

1

SqlConnection正常工作與SQL 2000年你可以得到一個ConnectionString的樣品here

+2

更改爲SqlConnection的給了我同樣的錯誤,所以我進去並取出字符串的提供者部分,它工作正常。現在我試圖找出原因。如果我更改連接字符串以排除提供程序,那麼數據集將不再起作用。唯一的解決方案是有兩個連接字符串,一個用於數據集,另一個用於手動連接? – Mohgeroth 2011-03-18 21:37:02

+0

當您切換到SqlConnection時,您的連接字符串應該看起來像是網站上的一個。我個人最喜歡的是「Server = SOMESERVERNAME;數據庫= SOMEDATABASENAME;用戶ID = SOMEUSERID;密碼= SOMEPASSWORD;」 - 因此,無論您是在檢索數據集,讀取器,執行命令還是使用任何ORM,連接都不會有問題。 – 2011-03-19 01:59:48

+0

這是我切換到,它在代碼後面工作就好了。但是,使用此連接鏈接到數據集的表單上的所有控件都停止運行,因爲它無法再解釋連接字符串。由於某種原因,連接字符串中沒有提供者,我失去了我的表單上數據集綁定的功能。 – Mohgeroth 2011-03-19 14:33:36