微软 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;
- }
来源: http://www.bubuko.com/infodetail-2994589.html