天天看點

C# 通用資料庫配置界面,微軟原生DLL重整合

C# 通用資料庫配置界面,微軟原生DLL重整合

自己整合了

微軟自帶的資料連接配接配置界面對話庫    Microsoft.Data.ConnectionUI.Dialog.dll 

微軟自帶的資料連接配接配置界面庫   Microsoft.Data.ConnectionUI.dll

微軟自帶的資料連接配接配置界面庫語言包    Microsoft.Data.ConnectionUI.Dialog.resources.dll

.net 通用資料庫配置界面,微軟原生DLL重整合(上面三個類庫整合成 DBConnectSetting.dll,隻要在項目中引用這個DBConnectSetting.dll類庫,C#程式裡面就可以使用 Microsoft.Data.ConnectionUI.Dialog.dll ,Microsoft.Data.ConnectionUI.dll他們了)

 ​

下面是具體使用案例

微軟vs自帶資料庫測試界面化工具

Microsoft.Data.ConnectionUI.DataConnection.Dialog 與Microsoft.Data.ConnectionUI.DataConnection 

MicrosoftVisualStudio裡面的資源之資料庫連接配接配置

這個功能的實作主要是用了Microsoft.Data.ConnectionUI.dll和Microsoft.Data.ConnectionUI.Dialog.dll這個二個動态庫,可以在VS的安裝目錄的Common7\IDE這個目錄下面找到(本機的安裝路徑C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE)。 

找到兩個元件 Microsoft.Data.ConnectionUI.dll,Microsoft.Data.ConnectionUI.Dialog.dll

這兩個要一起引用下

Microsoft.Data.ConnectionUI.dll

Microsoft.Data.ConnectionUI.Dialog.dll

測試代碼。ok,但是本地的隻引用Microsoft.Data.ConnectionUI.dll,Microsoft.Data.ConnectionUI.Dialog.dll沒有引用Microsoft.Data.ConnectionUI.Dialog.resources.dll,界面是英文版的,使用DBConnectSetting.dll,就可以是中文界面了(因為DBConnectSetting.dll整合了上述的三個dll類庫)。

string ConnString = null;

bool isSqlServer = false;

private void btnTestDataConnectionDialog_Click(object sender, EventArgs e)

{

//伺服器名稱 LENOVO-PC\MYSQLEXPRESS

using (Microsoft.Data.ConnectionUI.DataConnectionDialog dlg = new DataConnectionDialog()) 

//添加資料源

dlg.DataSources.Add(Microsoft.Data.ConnectionUI.DataSource.AccessDataSource);

dlg.DataSources.Add(Microsoft.Data.ConnectionUI.DataSource.OdbcDataSource);

dlg.DataSources.Add(Microsoft.Data.ConnectionUI.DataSource.OracleDataSource);

dlg.DataSources.Add(Microsoft.Data.ConnectionUI.DataSource.SqlDataSource);

dlg.DataSources.Add(Microsoft.Data.ConnectionUI.DataSource.SqlFileDataSource);

//設定預設資料提供對象

dlg.SelectedDataSource = Microsoft.Data.ConnectionUI.DataSource.SqlDataSource;

dlg.SelectedDataProvider = Microsoft.Data.ConnectionUI.DataProvider.SqlDataProvider;

dlg.Text = "連接配接DCWriter示範資料庫";

//隻能夠通過DataConnectionDialog類的靜态方法Show出對話框

//不同使用dialog.Show()或dialog.ShowDialog()來呈現對話框

if (Microsoft.Data.ConnectionUI.DataConnectionDialog.Show(dlg) == System.Windows.Forms.DialogResult.OK) 

//連接配接字元串"Data Source=LENOVO-PC\\MYSQLEXPRESS;Initial Catalog=TestDB;Integrated Security=True"

ConnString = dlg.ConnectionString;

isSqlServer = dlg.SelectedDataSource == Microsoft.Data.ConnectionUI.DataSource.SqlDataSource

|| dlg.SelectedDataSource == Microsoft.Data.ConnectionUI.DataSource.SqlFileDataSource;

}

MessageBox.Show(ConnString);

這是本人寫的代碼的一部分,後面會展示具體的界面顯示

private static IDbConnection InnerCreateConnect()

     if (string.IsNullOrEmpty(_ConnectionString))

     {

       string dbFile = System.IO.Path.Combine(Application.StartupPath, "EMR.mdb");

       if (File.Exists(dbFile))

       {

          // 存在示範資料庫檔案

          _ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=EMR.mdb";

          _IsSQLServer = false;

        }

        else

        {

          try

         {

           using (Microsoft.Data.ConnectionUI.DataConnectionDialog dlg = new Microsoft.Data.ConnectionUI.DataConnectionDialog())

           {

              dlg.DataSources.Add(Microsoft.Data.ConnectionUI.DataSource.AccessDataSource); // Access 

              dlg.DataSources.Add(Microsoft.Data.ConnectionUI.DataSource.SqlDataSource); // Sql Server

              dlg.DataSources.Add(Microsoft.Data.ConnectionUI.DataSource.SqlFileDataSource); // Sql Server File

              // 初始化

              dlg.SelectedDataSource = Microsoft.Data.ConnectionUI.DataSource.AccessDataSource;

              dlg.SelectedDataProvider = Microsoft.Data.ConnectionUI.DataProvider.OleDBDataProvider;

              dlg.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=www.mdb";

              dlg.Text = "連接配接示範資料庫";

              //隻能夠通過DataConnectionDialog類的靜态方琺Show出對話框

              //不同使用dialog.Show()或dialog.ShowDialog()來呈現對話框

              if (Microsoft.Data.ConnectionUI.DataConnectionDialog.Show(dlg) == DialogResult.OK)

               {

                  _ConnectionString = dlg.ConnectionString;

                  _IsSQLServer = dlg.SelectedDataSource == Microsoft.Data.ConnectionUI.DataSource.SqlDataSource

                 || dlg.SelectedDataSource == Microsoft.Data.ConnectionUI.DataSource.SqlFileDataSource;

                }

           }

        catch (Exception ext)

          MessageBox.Show(ext.Message);

          _ConnectionString = null;

         }

     }

  }

  if (string.IsNullOrEmpty(_ConnectionString) == false)

  {

     if (_IsSQLServer)

      {

        SqlConnection conn = new SqlConnection(_ConnectionString);

        return conn;

       }

       else

          OleDbConnection conn = new System.Data.OleDb.OleDbConnection(_ConnectionString);

          return conn;

    }

    return null;

 }

C# 通用資料庫配置界面,微軟原生DLL重整合

龍騰一族至尊龍騎