2013-03-21 41 views
0

我有使用SQL Server R2作爲其數據庫的C#應用​​程序。該數據庫位於單獨的PC上,名稱爲SERVER。 SQL Server的實例名稱也是server我想運行C#程序而不更改SQL Server實例或不更改SQL Server安裝PC名稱

我的windows應用程序使用DataSet與數據庫進行通信。現在我的SQL安裝的PC名稱更改爲另一個名稱,例如SERVERHP。現在我所有的編碼工作都想改變我的連接字符串。有沒有其他簡單的方法來做到這一點?

我試圖編輯主機文件,但它不適用於我。

這是我的編碼風格(http://goo.gl/FQrkp)。我正在使用DataSetDataAdapter與IDE設計人員。

我有100〜150個表格。現在我無法編譯所有編碼。我想要簡單的方法來連接該SQL Server數據庫。

我希望有一種方法來隱藏計算機的主機名的變化

+0

試圖使用IPs? – EaterOfCode 2013-03-21 20:56:50

+0

之所以這樣,該方法也是想編譯所有的cording。我想知道他們有什麼其他方法可以在SQL SERVER SIDE中做到嗎?像編輯主機文件一樣,使用類似別名的東西 – Elshan 2013-03-21 20:59:26

+1

你有C#應用程序的源代碼嗎?這正是許多人將連接字符串放在其app.config中的原因,這樣當他們的數據庫重新定位時,他們就不必亂用源代碼。 – Pete 2013-03-21 20:59:29

回答

2

你有兩個選擇:

  1. 在全球範圍內更換IP地址的所有服務器名稱在連接字符串中應用

  2. 在全球範圍內更換新的服務器名稱的所有服務器名稱的應用

  3. 添加CNA ME記錄到服務器上的DNS表中(假設當然你在同一個網絡中,如果你使用的是計算機名稱,那你就是這樣)

  4. 向LMHOSTS文件添加一個條目(可以添加儘可能多的條目名字你會喜歡的指向同一個IP)

+0

我來試試你的3和4的方法和重播你,儘快。 – Elshan 2013-03-21 21:13:35

+0

@Elshan只是出於好奇,你最終使用了哪種解決方案? – 2013-03-25 14:54:14

1

這聽起來像你想有一個辦法隱藏計算機(Windows的服務器/桌面/虛擬化實例,的主機名的任何變化)運行您的SQL Server。

這不是我的專業領域,但我想不出一種只涉及應用程序代碼和計算機的方法。

如果您控制本地DNS,您可以創建一個CNAME條目,其中舊名稱「指向」新名稱。根據連接字符串的存儲方式,您可能需要編輯它們,否則可能不會。但是您不必擔心SQL Server的位置再次發生變化,因爲您始終可以編輯CNAME以指向新的位置。

關於未來的注意事項 - 不是您當前的問題:如果您繼續使用MS SQL Server,特別要注意將它移動到不是默認實例的計算機上,因爲那樣您需要將實例名稱也放在連接字符串中,這可能會強制您再次編輯所有應用程序web.configs和app.configs。

2

據我所知,它是SqlConnection用於連接數據庫,或類似的東西。你爲什麼不使用SqlConnectionStringBuilder?然後你可以建立你需要的連接字符串。另外,要獲取服務器列表,您可以使用System.Data.Sql命名空間中的SqlDataSourceEnumerator。

+0

事情是這個程序有非常大量的窗體forms.so重新編譯是浪費時間。我只想做這個程序only.newly cording完成** SqlConnectionStringBuilder **。 – Elshan 2013-03-21 21:21:11

1

您使用Visual Studio 2012與您的開發工作?我遇到了迷你SQL數據庫VS安裝(使用Premium版本)的衝突,並且必須修改我的Machine.config文件的ConnectionStrings部分以指向我的SQL數據庫。無論出於什麼原因,VS都會在Machine.Config文件中寫入對迷你數據庫的引用(無論您使用哪種.Net版本),都會引發潛在的衝突。

該文件可以在%SYSTEMROOT%找到\ Microsoft.Net \ Framework64 \點網版\配置

如果您使用的是x86處理器的Framework64文件夾就被稱爲「框架」。

+0

Visual Studio 2008 – Elshan 2013-03-21 21:21:46