C#DSN操作

來源:互聯網
上載者:User

在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,通用性好。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.