好吧我正在处理从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.
我显然做错了什么,但我不确定如何纠正问题,除了恢复到以前的版本。
对可能导致问题或建议的原因的任何见解都会很棒。
答案 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 ....
}