C# 通用数据库配置界面,微软原生DLL重整合

自己整合了
微软自带的数据连接配置界面对话库    Microsoft.Data.ConnectionUI.Dialog.dll 
微软自带的数据连接配置界面库   Microsoft.Data.ConnectionUI.dll
微软自带的数据连接配置界面库语言包    Microsoft.Data.ConnectionUI.Dialog.resources.dll
.net 通用数据库配置界面,微软原生DLL重整合(上面三个类库整合成 DBConnectSetting.dll,只要在项目中引用这个DBConnectSetting.dll类库,C#程序里面就可以使用 Microsoft.Data.ConnectionUI.Dialog.dll ,Microsoft.Data.ConnectionUI.dll他们了)
 
下面是具体使用案例

微软vs自带数据库测试界面化工具

Microsoft.Data.ConnectionUI.DataConnection.Dialog 与Microsoft.Data.ConnectionUI.DataConnection

MicrosoftVisualStudio里面的资源之数据库连接配置

这个功能的实现主要是用了Microsoft.Data.ConnectionUI.dll和Microsoft.Data.ConnectionUI.Dialog.dll这个二个动态库,可以在VS的安装目录的Common7\IDE这个目录下面找到(本机的安装路径C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE)。

找到两个组件 Microsoft.Data.ConnectionUI.dll,Microsoft.Data.ConnectionUI.Dialog.dll

这两个要一起引用下

Microsoft.Data.ConnectionUI.dll

Microsoft.Data.ConnectionUI.Dialog.dll

测试代码。ok,但是本地的只引用Microsoft.Data.ConnectionUI.dll,Microsoft.Data.ConnectionUI.Dialog.dll没有引用Microsoft.Data.ConnectionUI.Dialog.resources.dll,界面是英文版的,使用DBConnectSetting.dll,就可以是中文界面了(因为DBConnectSetting.dll整合了上述的三个dll类库)。

string ConnString = null;
bool isSqlServer = false;
private void btnTestDataConnectionDialog_Click(object sender, EventArgs e)
{
//服务器名称 LENOVO-PC\MYSQLEXPRESS
using (Microsoft.Data.ConnectionUI.DataConnectionDialog dlg = new DataConnectionDialog()) 
{
//添加数据源
dlg.DataSources.Add(Microsoft.Data.ConnectionUI.DataSource.AccessDataSource);
dlg.DataSources.Add(Microsoft.Data.ConnectionUI.DataSource.OdbcDataSource);
dlg.DataSources.Add(Microsoft.Data.ConnectionUI.DataSource.OracleDataSource);
dlg.DataSources.Add(Microsoft.Data.ConnectionUI.DataSource.SqlDataSource);
dlg.DataSources.Add(Microsoft.Data.ConnectionUI.DataSource.SqlFileDataSource);
//设置默认数据提供对象
dlg.SelectedDataSource = Microsoft.Data.ConnectionUI.DataSource.SqlDataSource;
dlg.SelectedDataProvider = Microsoft.Data.ConnectionUI.DataProvider.SqlDataProvider;
dlg.Text = "连接DCWriter演示数据库";
//只能够通过DataConnectionDialog类的静态方法Show出对话框
//不同使用dialog.Show()或dialog.ShowDialog()来呈现对话框
if (Microsoft.Data.ConnectionUI.DataConnectionDialog.Show(dlg) == System.Windows.Forms.DialogResult.OK) 
{
//连接字符串"Data Source=LENOVO-PC\\MYSQLEXPRESS;Initial Catalog=TestDB;Integrated Security=True"
ConnString = dlg.ConnectionString;
isSqlServer = dlg.SelectedDataSource == Microsoft.Data.ConnectionUI.DataSource.SqlDataSource
|| dlg.SelectedDataSource == Microsoft.Data.ConnectionUI.DataSource.SqlFileDataSource;
}
MessageBox.Show(ConnString);
}
}

这是本人写的代码的一部分,后面会展示具体的界面显示

private static IDbConnection InnerCreateConnect()
{
     if (string.IsNullOrEmpty(_ConnectionString))
     {
       string dbFile = System.IO.Path.Combine(Application.StartupPath, "EMR.mdb");
       if (File.Exists(dbFile))
       {
          // 存在演示数据库文件
          _ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=EMR.mdb";
          _IsSQLServer = false;
        }
        else
        {
          try
         {
           using (Microsoft.Data.ConnectionUI.DataConnectionDialog dlg = new Microsoft.Data.ConnectionUI.DataConnectionDialog())
           {
              dlg.DataSources.Add(Microsoft.Data.ConnectionUI.DataSource.AccessDataSource); // Access 
              dlg.DataSources.Add(Microsoft.Data.ConnectionUI.DataSource.SqlDataSource); // Sql Server
              dlg.DataSources.Add(Microsoft.Data.ConnectionUI.DataSource.SqlFileDataSource); // Sql Server File

// 初始化
              dlg.SelectedDataSource = Microsoft.Data.ConnectionUI.DataSource.AccessDataSource;
              dlg.SelectedDataProvider = Microsoft.Data.ConnectionUI.DataProvider.OleDBDataProvider;

dlg.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=www.mdb";
              dlg.Text = "连接演示数据库";
              //只能够通过DataConnectionDialog类的静态方琺Show出对话框
              //不同使用dialog.Show()或dialog.ShowDialog()来呈现对话框
              if (Microsoft.Data.ConnectionUI.DataConnectionDialog.Show(dlg) == DialogResult.OK)
               {
                  _ConnectionString = dlg.ConnectionString;
                  _IsSQLServer = dlg.SelectedDataSource == Microsoft.Data.ConnectionUI.DataSource.SqlDataSource
                 || dlg.SelectedDataSource == Microsoft.Data.ConnectionUI.DataSource.SqlFileDataSource;
                }
           }
        }
        catch (Exception ext)
        {
          MessageBox.Show(ext.Message);
          _ConnectionString = null;
         }
     }
  }
  if (string.IsNullOrEmpty(_ConnectionString) == false)
  {
     if (_IsSQLServer)
      {
        SqlConnection conn = new SqlConnection(_ConnectionString);
        return conn;
       }
       else
       {
          OleDbConnection conn = new System.Data.OleDb.OleDbConnection(_ConnectionString);
          return conn;
        }
    }
    return null;
 }

C# 通用数据库配置界面,微软原生DLL重整合的更多相关文章

  1. PHP访问数据库配置通用方法

    提取一种对数据库配置的通用方式 目的是通过通用类访问配置文件的方式,提供对数据库连接的动态获取和设置,使开发时和生产应用时都能够提供灵活的.简化的.解耦的操作方式.比如在配置文件中配置好两套数据库访问 ...

  2. 微软URLRewriter.dll的url重写在目标框架.Net Framework2.0、4.0和应用程序池经典模式、集成模式下的配置

    大家参考几篇园子里面的这篇文章: 文章1:微软URLRewriter.dll的url重写的简单使用 (讲解了使用UrlReWriter.dll的下载.web.config如何在目标框架2.0应用程序池 ...

  3. SNF开发平台-SNF.CodeGenerator-升级生成BS页面代码-支持视图-数据库配置-快速开发者的利器

    有一段时间没有进行总结SNF快速开发平台了,这段时间把今年在框架升级部分进行整理说明. 下面就把代码生成器升级部分介绍一下: 1.新增BS页面生成代码 2.新增视图支持 3.新增 数据库配置 1.新增 ...

  4. [转]DbHelper通用数据库访问帮助类

    之前我一直都是在博客园中查看各位高手的博文,确实学到了不少知识,不过比较少写博客,现在就把我自己在项目实施过程中使用到比较好的技术框架写出来,希望能让更多的人了解和学习. 通常我们在开发使用数据库访问 ...

  5. 第一个Django应用 - 第二部分:Django数据库配置,模型和后台

    汇总操作 注:polls为应用名 1.执行命令:python manage.py migrate,生成默认的数据库表等 2.修改应用的models.py文件,添加数据库表模型等 3.INSTALLED ...

  6. AlwaysOn可用性组测试环境安装与配置(二)--AlwaysOn配置(界面与T-SQL)

    四.AlwaysOn配置 1.开启AlwaysOn高可用性功能. 1.1.开启Server01的可用性组 1.2.需要重启服务:属于SQL server群集节点的服务,需要通过故障转移界面重启 1.3 ...

  7. GZFramwork数据库层《前言》DLL项目引用

    新建项目: 1. 项目引入GZFramwork.dll NuGet地址:Install-Package GZFramwork 每个项目都引用 2.BLL层 设置数据库连接维护类:继承于:GZFramw ...

  8. 应用程序初次运行数据库配置小程序(Java版)

    应用程序初始化数据库配置小程序 之前写过一个Java版的信息管理系统,但部署系统的时候还需要手动的去配置数据库和导入一些初始化的数据才能让系统运行起来,所以我在想是不是可以写一个小程序在系统初次运行的 ...

  9. 直接调用VS.net2005中的配置界面

    以前做Winform程序,居然专门做一个界面来配置连接字符串.今天无意中发现:竟然可以直接调用VS.net2005中的配置界面来处理. 使用方法也非常简单: 引用C:\Program Files\Mi ...

随机推荐

  1. GCC编译器原理(二)------编译原理一:ELF文件(3)

    4.5 String Table:字符串表 字符串表节区包含以 NULL( ASCII 码 0) 结尾的字符序列, 通常称为字符串. ELF 目标文件通常使用字符串来表示符号和节区名称. 对字符串的引 ...

  2. Mac pro 装双系统 参考

    15岁觉得游泳难,放弃游泳,到18岁遇到一个你喜欢的人约你去游泳,你只好说“我不会耶”.18岁觉得英文难,放弃英文,28岁出现一个很棒但要会英文的工作,你只好说“我不会耶”.人生前期越嫌麻烦,越懒得学 ...

  3. pyqt5-是否被编辑

    setWindowModified(bool)     被编辑状态,显示*;    没有被编辑,不显示* isWindowModified()              窗口是否是被编辑状态 from ...

  4. sqlite3_column_type 与 SQLITE_NULL的区别

    1. sqlite3_column_type(&stat, 1) == SQLITE_NULL 相同的情况下,只有当表为空时, 则是相同的, 如果 update table set a=&qu ...

  5. linux 启动管理

  6. Django学习手册 - 初识django

    初识: django简介: 开放源代码的web应用框架 由python语言编写的. 一.框架基本概念(核心): 以上这个图就是 django 的核心逻辑图,必须熟记.后续的所有编程都跟这个图的逻辑息息 ...

  7. python模块-----pymysql

    一.安装 本模块为python第三方模块,需要单独安装.作用为调用mysql接口执行模块 pip3 install pyMySql 操作步骤: #!/usr/bin/python3 import py ...

  8. Spring3.2+mybatis3.2+Struts2.3整合

    1.Spring3.2不能用于JDK1.8,只能用于JDK1.7.JDK1.8用spring4.0. 2.导入的jar包 3.目录结构: 4.配置Spring 配置数据库信息: <?xml ve ...

  9. 系统更新报错--NO_PUBKEY

    错误信息 W: An error occurred during the signature verification. The repository is not updated and the p ...

  10. Git学习笔记05-撤销修改

    使用 git checkout -- file可以撤销工作区的修改 一种是修改后还没有放到暂存区,撤销修改回到和版本库一模一样的状态 lesson.txt文件已经提交到版本库了,内容如图. ​ 修改一 ...