簡體   English   中英

WPF,什么是存儲要在啟動時使用的常量的最佳方法?

[英]WPF, What's the best way to store a constant to be used at startup?

我有一個訪問數據庫實例的WPF應用程序。 我在個人計算機上進行開發,該應用程序將在另一台計算機和數據庫實例上運行。 是否存在將實例名稱存儲在WPF應用程序外部的方法或最佳實踐,我可以在應用程序啟動時讀取該實例名稱? 當前,當我從一台機器移到另一台機器時,我對數據庫實例名稱進行注釋和取消注釋。 我希望在本地計算機上存儲一些內容,在啟動應用程序時可以讀取這些內容。

這是我目前正在做的事情:

try
        {
            if (sqlConn != null)
            {
                sqlConn.Close();
            }

            strConnection = "Data Source=" + strDBInstance + "; Initial Catalog=NBFoodPantry;Integrated Security=true; MultipleActiveResultSets = True";
            //strConnection = "Data Source=CASS-LAPTOP\\SQLEXPRESS; Initial Catalog=NBFoodPantry;Integrated Security=true; MultipleActiveResultSets = True";
            //strConnection = "Data Source=KENTS-WORK-PC\\CASS_SQLEXPRESS; Initial Catalog=NBFoodPantry;Integrated Security=true; MultipleActiveResultSets = True";

            sqlConn = new SqlConnection(@strConnection);
            try
            {
                sqlConn.Open();
            }
            catch (Exception ex)
            {
                string strMsg;

                WriteErrorLog(strErrorLogFile, "ConnectToDatabase", ex.Message, false);
                strMsg = "ConnectToDatabase: SQL Open failed.  Please make sure that you database ";
                strMsg += "instance and name are correct.  Also make sure that the SQL engine is running.";
                System.Windows.MessageBox.Show(strMsg);
            }
        }
        catch (Exception ex)
        {
            string strMsg;

            WriteErrorLog(strErrorLogFile, "ConnectToDatabase", ex.Message, false);
            strMsg = " ConnectToDatabase: failed with error, " + ex.Message + ".";
            System.Windows.MessageBox.Show(strMsg);
        }

這是應用程序設置旨在處理的。 在項目的屬性節點下,打開設置。 這內置了對連接字符串的支持:

設置對話框

然后,您可以通過其名稱訪問代碼中的設置:

Properties.Settings.Default.ConnectionString

所有這些都存儲在App.config中,您可以在各種計算機上對其進行修改以具有不同的值。

暫無
暫無

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

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