私はゆっくりと C# を学んでおり、コードについて少し混乱しています。ここに、データベース接続設定用のクラスの簡易バージョンがあります
public class DatabaseSettings
{
private static string connectionString = string.Empty;
public static string ConnectionString
{
get
{
return connectionString;
}
private set
{
connectionString = value;
}
}
public bool TestConnection()
{
bool _returnVal = false;
string _connectionString = String.Format("Data Source={0};Persist Security Info=False", databaseLocation);
using (SqlCeConnection connection = new SqlCeConnection(_connectionString))
{
try
{
connection.Open();
connectionString = _connectionString; // sets the value of the connection string here
_returnVal = true;
}
catch (SqlCeException e)
{
// other codes here
_returnVal = false;
}
finally
{
connection.Close();
}
}
return _returnVal;
}
// other methods here
}
今、私Main Class
はここで何が起こっているのか混乱しています。このコードを試したとき:
string _databaseLocation = "database path";
DatabaseSettings _dbaseSetting = new DatabaseSettings(_databaseLocation, true);
_dbaseSetting.TestConnection();
string newConnectionString = _dbaseSetting.ConnectionString;
// ^ i got an error here
// Member 'SQLCE_Sample.ClassList.DatabaseSettings.ConnectionString.get'
// cannot be accessed with an instance reference;
// qualify it with a type name instead
以下のこれはエラーなしで機能しますが、問題は空の文字列があることです:
string _databaseLocation = "database path";
DatabaseSettings _dbaseSetting = new DatabaseSettings(_databaseLocation, true);
string newConnectionString = DatabaseSettings.ConnectionString;
私が本当に欲しいのは、アプリケーションからデータベースへの接続public method
をテストするクラスを作成する必要があるということです。そのメソッド内には、接続文字列の値を設定する構文が含まれています。次に、クラスをインスタンス化せずに接続文字列の値を取得する も必要です (そのため、キーワードを追加しました)。どうすればこれにできますか?property
static