大家都知道新建一个记事本,然后把后缀改为udl后就能打开一个数据库属性窗口,可以进行连接测试
但是我们在C# 代码中如何实现呢?如何返回字符串呢
运用场景:
①配置多数据库操作
②切换数据库
③可视化配置
..........
实现过程
方式一
引用安装目录的下
Microsoft.Data.ConnectionUI.Dialog.dll
Microsoft.Data.ConnectionUI.dll(有依赖关系)
每个人的安装方式不一样,目录也不一样C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\
1 Microsoft.Data.ConnectionUI.DataConnectionDialog connDialog = new Microsoft.Data.ConnectionUI.DataConnectionDialog(); 2 // 添加数据源列表,可以向窗口中添加自己程序所需要的数据源类型 必须增加以下几项中任一一项 3 connDialog.DataSources.Add(Microsoft.Data.ConnectionUI.DataSource.AccessDataSource); // Access 4 connDialog.DataSources.Add(Microsoft.Data.ConnectionUI.DataSource.OdbcDataSource); // ODBC 5 connDialog.DataSources.Add(Microsoft.Data.ConnectionUI.DataSource.OracleDataSource); // Oracle 6 connDialog.DataSources.Add(Microsoft.Data.ConnectionUI.DataSource.SqlDataSource); // Sql Server 7 connDialog.DataSources.Add(Microsoft.Data.ConnectionUI.DataSource.SqlFileDataSource); // Sql Server File 8 9 // 初始化10 connDialog.SelectedDataSource = Microsoft.Data.ConnectionUI.DataSource.SqlDataSource;11 connDialog.SelectedDataProvider = Microsoft.Data.ConnectionUI.DataProvider.SqlDataProvider;12 connDialog.ConnectionString = string.Empty;//可以设置默认连接,这里默认置空13 //只能够通过DataConnectionDialog类的静态方法Show出对话框14 //不同使用dialog.Show()或dialog.ShowDialog()来呈现对话框15 16 if (Microsoft.Data.ConnectionUI.DataConnectionDialog.Show(connDialog) == DialogResult.OK)17 {18 string myConnect = connDialog.ConnectionString;//连接对象的连接字符串19 20 }
附效果图
方式二
1. 添加两个dll引用,包括一个.Net库adodb.dll和一个COM库oledb32.dll(Microsoft Ole DB Service Component 1.0 Type Library)。
2. 引入两个命名空间:adodb.dll的ADODB和oledb32.dll的MSDASC。3. 下面的方法能打开“数据链接属性”对话框,并把用户的设置作为链接字符串返回备注:1.这种方式如果用户点了取消会引发异常 所以用 try 包裹
2.数据源暂时没有找到控制方法
public string GetConnectionString() { try { string strConn = string.Empty; MSDASC.DataLinks dataLink = new MSDASC.DataLinks(); ADODB.Connection myConn = dataLink.PromptNew() as ADODB.Connection; strConn = myConn.ConnectionString; return strConn; } catch (Exception) { return string.Empty; } }