2012-09-25 61 views
0

我的應用程序使用xml配置文件將以下連接字符串存儲到程序中使用的數據庫(括號中的信息已針對此文章進行了更改)。在xml配置文件中使用註冊表值

<add name="VetDAR.My.MySettings.VDARSQLDBASEConnectionString" connectionString="Data Source=[DATASOURCE];Initial Catalog=[INITIAL CATALOG];User ID=[UID];Password=[PASSWORD]" providerName="System.Data.SqlClient" /> 

我的程序還利用註冊表鍵進行大量的信息和程序設置。是否可以利用xml文件中此連接字符串中存儲在註冊表項中的數據庫連接信息?即如果我有一個數據源鍵值,我可以用上面的連接字符串中的[DATASOURCE]替換註冊表值嗎?

我知道如何在我的應用程序中的正常vb.net表單中執行此操作,但我不知道如何(或者甚至可能)從xml文件中調用註冊表值。或者,是否可以重寫Visual Studio的默認行爲並強制數據集使用硬編碼的連接字符串,我可以在其中調用註冊表值?

回答

0

如何從配置文件中獲取connectionString並將它傳遞給數據庫連接對象。

但是,在將它傳遞給數據庫之前,需要替換需要替換的值。所以,你的連接字符串將讀取類似:

Data Source=[DATASOURCE];Initial Catalog=[INITIAL CATALOG];User ID=[UID];Password=[PASSWORD]

,然後你傳遞給數據庫:

Dim connString As String = GetConnectionStringFromXML() 
MyDatabase.ConnectionString = connString.Replace("[UID]", GetRegistryValue("UID").Replace("[INITIAL CATALOG]",GetRegistryValue("DatabaseName")) 

... ...

+0

會在哪裏我做到這一點?我是否必須在每個表單上執行此操作,還是在程序中的某個位置,我只需將該代碼放入一次 - 即數據集? – scholzr

+0

我會有專門針對您的程序需要的設置的課程。每個表格都會向這個班級詢問所需的設置。這種方式只能在一個地方,而且表格並不關心它是如何計算的。 –

相關問題