介绍:

  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对应的控件有个大概的了解,方便以后在开发中遇到此类需求可以快速解决分享。

  此文的另一重点是:注意在不同的程序集中的不同类(类名可一致),同时也对程序集、模块与文件的区别有所了解。

  参考:

  1. 挖掘Microsoft Visual Studio 里面的资源之数据库连接配置
  2. C#:使用VS内置DataConnectionDialog连接数据库
  3. 分享一些WinForm数据库连接界面UI
  4. Data Connection Dialog (直接调用内置数据源连接对话框)

附件:ConnectionPromptDialog.zip

使用DataConnectionDialog在运行时设置数据源连接字符串的更多相关文章

  1. 【转】使用DataConnectionDialog在运行时设置数据源连接字符串

    介绍: DataConnectionDialog 类: 打开“数据连接”对话框,获取用户选择的数据连接信息. 命名空间为:Microsoft.Data.ConnectionUI 所在程序集:Micro ...

  2. ActiveReports中如何在后台导出运行时绑定数据源报表

    ActiveReports支持运行时绑定数据源功能,这种绑定数据源方法使用较为普及,然而很多系统中都需要在后台导出报表文件,所以用户就很困惑,ActiveReports中如何在后台导出运行时绑定数据源 ...

  3. loadrunner 运行场景-运行时设置

    运行场景-运行时设置 by:授客 QQ:1033553122 A.   查看.修改单个脚本的运行时设置 a)   途径1: Scenario Groups.Scenario Groups Script ...

  4. 彻底搞清楚class常量池、运行时常量池、字符串常量池

    彻底搞清楚class常量池.运行时常量池.字符串常量池 常量池-静态常量池 也叫 class文件常量池,主要存放编译期生成的各种字面量(Literal)和符号引用(Symbolic Reference ...

  5. JVM 常量池、运行时常量池、字符串常量池

    常量池: 即class文件常量池,是class文件的一部分,用于保存编译时确定的数据. 保存的内容如下图: D:\java\test\out\production\test>javap -ver ...

  6. Class常量池、运行时常量池、字符串常量池的一些思考

    Class常量池.运行时常量池.字符串常量池 class常量池 java代码经过编译之后都成了xxx.class文件,这是java引以为傲的可移植性的基石.class文件中,在CAFEBABE.主次版 ...

  7. [转]Loadrunner11之VuGen运行时设置Run-Time Setting

    转自:http://www.51testing.com/html/92/450992-248065.html General 1.Run Logic运行逻辑 脚本如何运行的,每个action和acti ...

  8. LoadRunner 学习笔记(2)VuGen运行时设置Run-Time Setting

    定义:在Vugen中Run-Time Setting是用来设置脚本运行时所需要的相关选项

  9. 【转载】lr运行时设置,每个action 比例

    提供了再脚本运行时所需要的相关选项. 性能测试的关键之一:能否通过脚本来完全模拟用户的行为,可以通过运行设置让脚本运行的更人性化. 1. Run Logic 脚本如何运行,每个action与actio ...

随机推荐

  1. 实战使用Axure设计App,使用WebStorm开发(2) – 创建 Ionic 项目

    系列文章 实战使用Axure设计App,使用WebStorm开发(1) – 用Axure描述需求  实战使用Axure设计App,使用WebStorm开发(2) – 创建 Ionic 项目   实战使 ...

  2. CocoaPods 深入使用

    在 CocoaPods 使用中介绍了基本的使用 写项目的时候想用到 SQLite.swift第三方库,但是问题来了 pod search SQLite.swift  //执行这条语句,搜索不到结果 但 ...

  3. Vue.js2.0从入门到放弃---入门实例

    最近,vue.js越来越火.在这样的大浪潮下,我也开始进入vue的学习行列中,在网上也搜了很多教程,按着教程来做,也总会出现这样那样的问题(坑啊,由于网上那些教程都是Vue.js 1.x版本的,现在用 ...

  4. Android ListView 常用技巧

    Android ListView 常用技巧 Android TextView 常用技巧 1.使用ViewHolder提高效率 ViewHolder模式充分利用了ListView的视图缓存机制,避免了每 ...

  5. 每天一个linux命令(13):less 命令

    less 工具也是对文件或其它输出进行分页显示的工具,应该说是linux正统查看文件内容的工具,功能极其强大.less 的用法比起 more 更加的有弹性.在 more 的时候,我们并没有办法向前面翻 ...

  6. JsBridge实现Javascript和Java的互相调用

    前端网页Javascript和Native互相调用在手机应用中越来越常见,JsBridge是最常用的解决方案. 在Android开发中,能实现Javascript与Native代码通信的,有4种途径: ...

  7. mongodb-$type、limit、skip、sort方法、索引、聚合

    一.$type操作符 $type操作符是基于BSON类型来检索集合中匹配的数据类型,并返回结果. MongoDB 中可以使用的类型如下表所示: 类型 数字 备注 Double 1   String 2 ...

  8. 邻接矩阵有向图(二)之 C++详解

    本章是通过C++实现邻接矩阵有向图. 目录 1. 邻接矩阵有向图的介绍 2. 邻接矩阵有向图的代码说明 3. 邻接矩阵有向图的完整源码 转载请注明出处:http://www.cnblogs.com/s ...

  9. 开发人员看测试之细说JBehave

    上篇我们说到如何从Github上clone出一个JBehave项目,既是为了学习JBehava,也是为了熟悉下Github.从clone下来的项目看来,基本没什么问题,稍微捋一捋就可以运行,但是就cl ...

  10. 漫谈可视化Prefuse(四)---被玩坏的Prefuse API

    这个双12,别人都在抢红包.逛淘宝.上京东,我选择再续我的“漫谈可视化”系列(好了,不装了,其实是郎中羞涩...) 上篇<漫谈可视化Prefuse(三)---Prefuse API数据结构阅读有 ...