繁体   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