C#调用windwos系统数据源配置

方案1.       首先添加对Microsoft.Data.ConnectionUI.Dialog.dll的引用,这个assembly在VS2010的安装目录下,C:"Program Files"Microsoft Visual Studio 9"Common7"IDE下边,命名空间引入 Microsoft.Data.ConnectionUI

using Microsoft.Data.ConnectionUI;
namespace ConnectionBuilder
{
    public partial class ConnectionForm : Form
       {
        public ConnectionForm()
           {
               InitializeComponent();
           }

        privatevoid btnCreateConnection(object sender, EventArgs e)
           {
               DataConnectionDialog dialog = new DataConnectionDialog();

            //添加数据源列表,可以向窗口中添加自己程序所需要的数据源类型
                dialog.DataSources.Add(DataSource.SqlDataSource);
               dialog.DataSources.Add(DataSource.OdbcDataSource);
               dialog.DataSources.Add(DataSource.OracleDataSource);
               dialog.DataSources.Add(DataSource.SqlFileDataSource);
               dialog.DataSources.Add(DataSource.AccessDataSource);


               dialog.SelectedDataSource = DataSource.OdbcDataSource;
               dialog.SelectedDataProvider = DataProvider.OdbcDataProvider;

            //只能够通过DataConnectionDialog类的静态方法Show出对话框
               //不能使用dialog.Show()或dialog.ShowDialog()来呈现对话框
            if (DataConnectionDialog.Show(dialog, this) == DialogResult.OK)
               {
                   txtConnectionString.Text = dialog.ConnectionString;
               }
           }
       }
}

说明:此方案初期认为不可行,因为错误认为它只可配置ODBC数据源,后来发现是可以配置ADO.NET的(OLE DB),但是在代码里无法添加上“其它数据库”选项,导致无法扩展OLE DB,其默认的可在代码添加的数据源只有ACCESS,SQLserver,SQLserver文件,Orcal和ODBC五种
方案2:(没有用过
国外网站参考出处:http://www.thescripts.com/forum/thread677730.html
其实是在方案1的基础上加一行代码,
DataSource.AddStandardDataSources(dialog);
AddStandrdDataSources方法

code:

DataConnectionDialog dcd = new DataConnectionDialog();

DataSource.AddStandardDataSources(dcd);

DataConnectionDialog.Show(dcd); 

MessageBox.Show("Connectionstring: "+dcd.ConnectionString + ""nSelected Data Source: " + dcd.SelectedDataSource.DisplayName + ""nSelected Data Provider: "+ dcd.SelectedDataProvider.DisplayName);
posted @ 2016-11-25 11:50  众兴公司  阅读(214)  评论(0编辑  收藏  举报