zoukankan      html  css  js  c++  java
  • C#DSN操作

    在C#中可以获取DSN列表,也可以弹出ODBC数据源管理器进行设置。

    1、C#获取机器上的DSN列表。

    采用Microsoft.win32类提供的注册表类RegistryKey和Registry,访问系统注册表可获取ODBC数据服务列表。

    获取系统DSN如下:

       ///创建两个RegistryKey类,一个将指向Root Path,另一个将指向子Path
        RegistryKey regRootKey;
        RegistryKey regSubKey;


        ///定义Root指向注册表HKEY_LOCAL_MACHINE节点,

        ///如果是需要获取用户DSN则需要使用 Registry.CurrentUser;
        regRootKey = Registry.LocalMachine;


        ///定义注册表子Path
        string strRegPath = @"SOFTWARE\ODBC\ODBC.INI\ODBC Data Sources";
        regSubKey = regRootKey.OpenSubKey(strRegPath);
        string[] strDSNList = regSubKey.GetValueNames();
       
        ///关闭
        regSubKey.Close();
        regRootKey.Close();   

     2、弹出ODBC数据源管理器

    使用C#提供的Environment类可以实现。

    ///获取ODBC的系统路径

    string   s=System.Environment.SystemDirectory.ToString()   +"\\odbcad32.exe";  
    ///Process提供对本地和远程进程的访问并使您能够启动和停止本地系统进程。使用该类启动ODBC对话框

      Process   myp=new   Process();  
      myp.StartInfo.FileName=s;  
      myp.Start();  

    3、各种DSN类型的区别

    DSN类型有以下三种:

    用户DSN:该数据源只能对建立数据源的用户可见.
    ODBC用户数据源存贮了如何与指定数据库提供者连接的信息.只对当前用户可见,而且只能用于当前机器上.这里的当前机器是只这个配置只对当前的机器有效,而不是说只能配置本机上的数据库.它可以配置局域网中另一台机器上的数据库.

    系统DSN:该数据源对当前机器上所有的用户可见.
    ODBC系统数据源存贮了如何指定数据库提供者连接的信息,系统数据对当前机器上的所有用户都是可见的,包括NT服务.也就是说在这里配置的数据源,只要是这台机器的用户都可以访问 .

    文件DSN:该数据源对安装了相同驱动的用户可见
    用户DSN只被用户直接使用,它只能用于当前机器中,ASP不能使用它.系统DSN允许所有的用户登陆到特定服务器上去访问数据库,任何具有权限有用户都可以访问系统DSN.在WEB应用程序中访问数据库时,通常都是建立系统DSN. 文件DSN将信息存储在后缀为.dsn的文本文件中,优点是便于移动.

    用户DSN只是针对当前用户或者特定用户;系统DSN是底层的,针对全部用户。一般没有特殊情况时,建议使用使用系统DSN,通用性好。

  • 相关阅读:
    .NET 4.6.1 给cookie添加属性
    Blog目录
    1019 数字黑洞
    1018 锤子剪刀布
    1017 A除以B
    1016 部分A+B
    1015 德才论
    1014 福尔摩斯的约会
    1013 数素数
    1012 数字分类
  • 原文地址:https://www.cnblogs.com/scgw/p/1898651.html
Copyright © 2011-2022 走看看