在现有应用程序中更改连接字符

时间:2014-02-26 22:16:06

标签: vb.net visual-studio-2010 sql-server-2008 connection-string

好吧我正在处理从Visual Studios 2008转换为Visual Studios 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 个答案:

答案 0 :(得分: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 ....
}