本文转自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对应的控件有个大概的了解,方便以后在开发中遇到此类需求可以快速解决分享。
此文的另一重点是:注意在不同的程序集中的不同类(类名可一致),同时也对程序集、模块与文件的区别有所了解。
参考:
使用DataConnectionDialog在运行时设置数据源连接字符串
原文:http://www.cnblogs.com/wangyangang/p/connDialog.html