0

メンテナンス タスクを実行するためにデータベース サーバーに接続するプログラムに使用できるDatabaseNotFoundの .NET の "組み込み" 例外はありますか?

あるべきだと思いますが、見つけることができませんでした。以下のコードでは、(app.config で定義された) データベースの存在を確認しています。

XML ファイル:

<DatabaseConnection source="myLaptop" username="user" password="pass" defaultDatabase="DB1">
    <database companyIdentTable="tableA" companyIdentField="fieldA">Database_A</database>
    <database companyIdentTable="tableB" companyIdentField="fieldB">Database_B</database>
</DatabaseConnection>

C# コード:

for (int i = 0; i < appSettings.DatabaseConnection.database.Length; i++)
{
    string database = builder.QuoteIdentifier(appSettings.DatabaseConnection.database[i].Value); //Security measure
    command = new SqlCommand("SELECT COUNT(1) FROM master.dbo.sysdatabases WHERE name='" + database + "'", conn);
    if ((int)command.ExecuteScalar() <= 0)
    {
        Log("Database '" + appSettings.DatabaseConnection.database[i].Value + "' was not found. Service shutting down.", true);
        //TODO - throw a more specific exception!
        throw new Exception("Database '" + appSettings.DatabaseConnection.database[i].Value + "' was not found. Service shutting down.");
    }
}
4

2 に答える 2

1

SqlCommandを使用しているので、SqlCommandがスローするSystem.Data.SqlClient.SqlExceptionを使用します。

于 2013-04-25T08:02:59.840 に答える