簡體   English   中英

為什么我的Visual Studio 10停止對SQL連接字符串使用App.Config?

[英]Why did my Visual Studio 10 stop using App.Config for my SQL connection string?

我有一個使用WPF和SQL Server 2008 R2的有效數據庫應用程序,兩年來一直從App.Config文件獲取其SQL Server連接字符串。 幾天前,在一台開發機上,它開始忽略App.Config文件的connectionString,現在正在使用其他位置的字符串(看起來像settings.settings或DBML文件)。

為什么會發生這種情況,我如何才能停止這樣做呢?

app.config像這樣開始:

<configuration>
  <configSections>
    <section name="log4net" type="System.Configuration.IgnoreSectionHandler"/>
  </configSections>
  <connectionStrings>
    <add name="DronzApp.Properties.Settings.DronzAppConnectionString"
     connectionString="Server=dronz.db.123.dronzdbserver.com;Database=dronzdb;User ID=dronz;Password=secretsauce;"
     providerName="System.Data.SqlClient" />
 </connectionStrings>

編輯:感謝您的建議,以獲取更多信息以及在哪里尋找。 我不知道WPF應用程序從何處獲取應在App.Config或其他任何地方查找的信息,但是在我了解到這一點之前,這里還有更多內容:

我的程序做的第一件事之一就是測試數據庫(現在失敗了)。 在此之前,它將調用自動生成的函數InitializeComponent(),其自動生成的代碼為:

        /// <summary>
    /// InitializeComponent
    /// </summary>
    [System.Diagnostics.DebuggerNonUserCodeAttribute()]
    public void InitializeComponent() {
        if (_contentLoaded) {
            return;
        }
        _contentLoaded = true;
        System.Uri resourceLocater = new System.Uri("/DronzApp;component/ui/startwindow.xaml", System.UriKind.Relative);

        #line 1 "..\..\..\UI\StartWindow.xaml"
        System.Windows.Application.LoadComponent(this, resourceLocater);

        #line default
        #line hidden
    }

我的啟動窗口構造函數調用InitializeComponent();。 然后使用以下行測試數據庫:

int hmm = App.db.Dronz_FooTable.Count();

其中App.db是在app.xaml.cs文件中定義為的數據上下文:

公共靜態DronzDataDataContext db = new DronzDataDataContext();

其中DronzDataDataContext是通過LINQ-to-SQL在自動生成的代碼中定義的,例如:

公共局部類DronzDataDataContext:System.Data.Linq.DataContext ...

    public DronzDataDataContext() : 
            base(global::DronzApp.Properties.Settings.Default.DronzConnectionString, mappingSource)
    {
        OnCreated();
    }

哪個曾經注意app.config文件,現在沒有。 當我發現數據庫異常(這是有關數據庫版本的問題,因為它試圖使用錯誤的SQL Server)並查看連接字符串時,它向錯誤的SQL Server詢問文件而不是正確的連接字符串。 它使用的連接字符串似乎與導入數據庫模式時Linq-to = SQL創建的DBML文件匹配,或者與settings.settings中的字符串匹配(這是我不太了解它來自何處的文件,或者我應該做什么或不做什么)。

好的,我似乎已經找到並解決了問題,但我不知道是什么原因造成的。

引用Config文件的內容實際上位於.proj文件中,並且以某種方式更改為在項目根目錄而不是App子文件夾中添加對app.config的引用。 通過閱讀關於app.config的其他討論,我認為VS2010也許是在查看GUI中的Project設置時自動完成的。 從.proj文件中手動刪除該行XML,使其可以查找並使用指向app.config文件實際位置的先前版本。 由於我在項目根目錄中沒有app.config文件,新的第一行被編輯為說它位於.proj文件中,因此似乎要去查看settings.settings,在其中找到connectionString值使用Linq將數據庫文件導入到SQL時文件所在的位置。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM