私は、データベースインスタンスにアクセスするWPFアプリケーションを持っています。私は自分のパーソナルマシン上で開発し、アプリケーションは別のマシンとデータベースインスタンス上で実行されます。アプリケーションの起動時に読み取ることができる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);
}
アプリケーション内に静的な読み取り専用フィールドを作成できます。しかし、その後、あるマシンから別のマシンにどのように通信するのかという疑問が生じます。 **編集:**データベースの接続名をロードするために定数を使用するだけであれば、web.configに格納したり、任意のAPIからロードすることができます。しかし、それは最良のアプローチではありません。 –
作業のスニップコードを投稿する –
MSDNの[アプリケーション設定とユーザー設定の使用](https://msdn.microsoft.com/en-us/library/bb397750(v=vs.110).aspx)を参照してください。 。 DB接続文字列は、アプリケーション設定(Web.configではなくApp.config内)にする必要があります。 – Clemens