0

好吧,我與已經從視覺工作室2008年轉換爲視覺工作室的舊的遺留應用程序的工作2010年在現有的應用程序更改連接字符串

我被指控做一個小更新到這個現有的應用程序代碼。 我做的更正一切工作正常,應用程序完成它應該做的除了這個應用程序必須從Sql Server作業運行。但是,每次我使用作業活動監視器從Sql Server 2008運行作業時,作業都會失敗並出現以下錯誤。

DTSRun: Loading...  Error: -2147467259 (80004005); Provider Error: 17 (11)  Error string: [DBNETLIB][ConnectionOpen (Connect()).]SQL Server does not exist or access denied.  Error source: Microsoft OLE DB Provider for SQL Server 

我的印象是這個問題與這個舊程序的連接字符串的方式有關。

下面是一個例子,舊的連接字符串(雖然我已經改變了一些元素,如出於安全原因,服務器名稱等)

 <applicationSettings> 
    <TXExportNet.My.MySettings> 
     <setting name="ConnString" serializeAs="String"> 
      <value>Data Source=SerSql;Initial Catalog=Xray;User ID=XUSERX;Password= xxxxxxxxxx</value> 

這看起來是做連接字符串,所以我的一個非常古老的方法想要更新到更常規的連接字符串方法,希望能夠糾正問題。

所以我註釋掉了舊的連接字符串,並在App.config文件中添加了以下內容。

<connectionStrings> 
<add name="TXConnString" connectionString="Data Source=SerSql.CXXX.INT;Initial Catalog=Xray;User ID=XUSERX; Password=xxxxxxxxxx" providerName="System.Data.OleDb"/> 

我當然通過程序代碼去了,改變了所有老「CONNSTRING」引用新的「TXConnString」

然而,當我跑我得到了程序的調試跟隨錯誤。

The settings property 'TXConnString' was not found. 

我明顯做錯了什麼,但我不確定如何解決問題,而不是恢復到以前的版本。

任何關於什麼可能導致問題或建議的見解將是偉大的。

回答

1

如果您使用connectionStrings標記而不是applicationSettings標記,則可以不同地訪問連接字符串。使用ConfigurationManager檢索您的連接字符串。

從app.config文件

<connectionStrings> 
    <add name="TXConnString" connectionString="Data Source=SerSql.CXXX.INT;Initial Catalog=Xray;User ID=XUSERX; Password=xxxxxxxxxx" providerName="System.Data.OleDb"/> 
</connecectionStrings> 

在你的源代碼:

using System.Configuration; 

string connectionString = ConfigurationManager.ConnectionStrings["TXConnString"].ConnectionString; 
using (SqlConnection conn = new SqlConnection(connectionString)) 
{ 
    ... insert database code here .... 
} 
+0

確定,所以應該是取代我的部分 <的applicationSettings> <設置名稱=「ConnString」serializeAs =「String」> Data Source = SerSql; Initial Catalog = Xray; User ID = XUSERX; Password = xxxxxxxxxx

+0

或者我應該是否將該行放置在主類引用連接字符串的每個位置? –

+1

將其替換到您的類引用連接字符串的位置。 – cdev

相關問題