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,通用性好。
轉載于:https://www.cnblogs.com/zany-hui/articles/1308232.html
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
- 上一篇: Flex3加载外部数据1
- 下一篇: Exchange 2007 OWA中出现