本文转自Cosmic_Spy 的博客,链接为http://www.cnblogs.com/Interkey/
介绍:
DataConnectionDialog 类: 打开“数据连接”对话框,获取用户选择的数据连接信息。
命名空间为:Microsoft.Data.ConnectionUI
所在程序集:Microsoft.Data.ConnectionUI.Dialog(在“%Visual Studio安装目录%/Common7/IDE/Microsoft.Data.ConnectionUI.Dialog.dll”)
注意:
在程序集:Microsoft.VisualStudio.Data (in Microsoft.VisualStudio.Data.dll)的Microsoft.VisualStudio.Data命名空间中也有一个DataConnectionDialog类,但此类是abstract的。如下图:
操作:
首先需要引用 Microsoft.Data.ConnectionUI.Dialog.dll(在“%Visual Studio安装目录%/Common7/IDE/”目录中)。
然后添加命名空间:
using DataConnectionDialog = Microsoft.Data.ConnectionUI.DataConnectionDialog; using DataProvider = Microsoft.Data.ConnectionUI.DataProvider; using DataSource = Microsoft.Data.ConnectionUI.DataSource;
关键代码如下:
private string GetDatabaseConnectionString() { string result = string.Empty; DataConnectionDialog dialog = new DataConnectionDialog(); dialog.DataSources.Clear(); //添加数据源列表,可以向窗口中添加所需要的数据源类型 必须至少有一项 dialog.DataSources.Add(DataSource.AccessDataSource); //Access dialog.DataSources.Add(DataSource.SqlDataSource); //Sql Server dialog.DataSources.Add(DataSource.OracleDataSource); //Oracle dialog.DataSources.Add(DataSource.OdbcDataSource); //Odbc dialog.DataSources.Add(DataSource.SqlFileDataSource); //Sql Server File //设置默认数据提供程序 dialog.SelectedDataSource = DataSource.SqlDataSource; dialog.SelectedDataProvider = DataProvider.SqlDataProvider; //本文地址:http://www.cnblogs.com/Interkey/p/DataConnectionDialog.html //dialog.Title = "Cosmic_Spy"; //dialog.ConnectionString = "Data Source=****;Initial Catalog=****;Integrated Security=True"; //也可以设置默认连接字符串 //只能够通过DataConnectionDialog类的静态方法Show出对话框,不能使用dialog.Show()或dialog.ShowDialog()来呈现对话框 if (DataConnectionDialog.Show(dialog) == DialogResult.OK) { result = dialog.ConnectionString; } return result; }
在需要的位置引用上述代码即可实现在运行时打开设置数据源窗体,选择数据库(可以直接测试是否能连接),返回连接字符串!
效果如下图:在运行时打开选择数据源窗体:
注意:
为与在Microsoft.VisualStudio.Data中的DataConnectionDialog 类作对比,贴出此程序集部分代码,如下图:
总结:
本文仅是对DataConnectionDialog对应的控件有个大概的了解,方便以后在开发中遇到此类需求可以快速解决分享。
此文的另一重点是:注意在不同的程序集中的不同类(类名可一致),同时也对程序集、模块与文件的区别有所了解。
参考: