挖掘Microsoft Visual Studio 裡面的資源之資料庫連接配置

來源:互聯網
上載者:User

這個功能的實現主要是用了Microsoft.Data.ConnectionUI.dll和Microsoft.Data.ConnectionUI.Dialog.dll這個二個動態庫,可以在VS的安裝目錄的Common7\IDE這個目錄下面找到。

添加引用就不多說了。要想實現簡單的,VS提供的幾個資料庫類型的支援,在這2個動態庫的支援下很是方便啊。

代碼如下:

Microsoft.Data.ConnectionUI.DataConnectionDialog diag = new Microsoft.Data.ConnectionUI.DataConnectionDialog(); Microsoft.Data.ConnectionUI.DataSource.AddStandardDataSources(diag); Microsoft.Data.ConnectionUI.DataConnectionDialog.Show(diag);

運行後的效果如下:
 

            

本來顯示的應該都是英文的,但是只需要在bin目錄下面建一個zh-CHS的目錄,將Microsoft.Data.ConnectionUI.Dialog.resources.dll拷入到該目錄下面,運行之後就是中文介面的,得到的效果就是中所顯示的了。

如果要自己定義一個資料來源,讓他支援所有的DataProvider,就需要先new一個DataSource出來,然後給這個DataSource添加DataProvider。

代碼如下:

Microsoft.Data.ConnectionUI.DataConnectionDialog diag = new Microsoft.Data.ConnectionUI.DataConnectionDialog();
DataSource d = new DataSource("自訂類型1", "支援所有的DataProvider");
d.Providers.Add(DataProvider.OdbcDataProvider);
d.Providers.Add(DataProvider.OleDBDataProvider);
d.Providers.Add(DataProvider.OracleDataProvider);
d.Providers.Add(DataProvider.SqlDataProvider);
DataSource d2 = new DataSource("自訂類型2", "支援部分DataProvider");
d2.Providers.Add(DataProvider.OdbcDataProvider);
d2.Providers.Add(DataProvider.OleDBDataProvider);
diag.DataSources.Add(d);
diag.DataSources.Add(d2);
DataConnectionDialog.Show(diag);

上面的代碼運行後的效果是下面右邊的圖,左邊的是只添加一個DataSource,添加了所有的DataProvider之後的效果。右邊的這個效果就可以類似建立出來了。

現在我有一個麻煩,現在添加的都只是VS內建的DataProvider,如果我想建立一個用來串連Sqlite的ConnectionUI,或者是支援mysql的ConnectionUI,該怎麼做?雖說DataProvider可以自己new一個出來,但是最終加入到DataSource中之後,運行出來的效果完全就不是我想要的效果。

用如下代碼:

DataConnectionDialog diag = new DataConnectionDialog();DataSource d = new DataSource("Sqlite","Sqlite資料來源");DataProvider p = new DataProvider("Sqlite資料提供者", "Sqlite資料提供者", "Sqlite", "用來串連Sqlite資料庫");d.Providers.Add(p);diag.DataSources.Add(d);DataConnectionDialog.Show(diag);

可得運行效果如下:

就只有一個ConnectionString屬性了,而且不管我裡面寫什麼,測試連接的時候總是成功的。

Sqlite有一個ADO.NET 2.0/3.5 SQLite Data Provider,我安裝了之後,添加sqlite資料來源的時候運行出來的效果是這樣的:

 

其實這個效果才是我想要的效果,不知道VS是怎麼顯示出這個對話方塊的。要是想在自己的程式中用的話該怎麼實現。我只知道安裝的那個ADO.NET 2.0/3.5 SQLite Data Provider之後,有一個應該是用來支援這個對話方塊的動態庫,SQLite.Designer.dll,裡面封裝了一個SQLiteConnectionUIControl,我覺得上面這個圖的顯示效果,就是這個SQLiteConnectionUIControl了。剛剛測試了一下,這個SQLiteConnectionUIControl應該是上面那個圖中英文顯示部分,從Database到下面的Password那一塊.要想直接拿來重用還是有點麻煩啊,不知道有沒有高人有好的辦法。

我這裡是拿Sqlite為例子,要想拿mysql的實現相同的功能也有同樣的問題,因為他們都不是VS內建的DataProvider中的一員。

哪位有好的解決辦法,希望能show一下。

 

My Tags:VS工具資源挖掘 , 資料庫連接選擇

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.