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

相关问题