2

クラスで SqlConnection 文字列を作成するこのメソッドを取得しました。.txt ファイルからデータを読み取りましたが、問題は、データが挿入されていない場合、アプリの電源が入らないことです。メッセージボックスで例外をスローし、そのコマンドをこのクラスメソッドに挿入するにはどうすればよいか疑問に思っていました。それが可能かどうかはわかりません。私の答えが些細すぎるか、ナンセンスである場合は申し訳ありません。私は長い間プログラミングをしていません。

internal static class DataSource
    {
        private static string _ConnectionString;
        public static string ConnectionString
        {
            get
            {
                if (_ConnectionString == null)
                    _ConnectionString = FunctionToDynamicallyCreateConnectionstring();
                return _ConnectionString;
            }
        }
 private static string FunctionToDynamicallyCreateConnectionstring()
        {

                string path = "C:\\Users\\marek\\Documents\\Visual Studio 2012\\Projects\\tours\\tours\\sql_string.txt";
                StreamReader sr = new StreamReader(File.Open(path, FileMode.Open));

                SqlConnectionStringBuilder cb = new SqlConnectionStringBuilder();

                cb.DataSource = sr.ReadLine();
                cb.InitialCatalog = sr.ReadLine();
                cb.UserID = sr.ReadLine();
                cb.Password = sr.ReadLine();
                return cb.ToString();

        }
4

2 に答える 2

2

DataSource.ConnectionStringアプリの起動時のアクセスを try/catch でラップします。いくつかの擬似コードを次に示します。

public void OnAppStart()
{
    string connString = null;
    try
    {
        connString = DataSource.ConnectionString;
    }
    catch (IOException ioe) 
    {
        MessageBox.Show("Hey, the file doesn't exist!");
    }
    catch (ArgumentNullException ane)
    {
        MessageBox.Show("Hey, the file is missing information!");
    }
    //You should be prepared to deal with a null or malformed connString 
    //from this point forwards
}
于 2013-08-06T22:39:40.193 に答える