3

私はこのようなコードを持っています:

using (var sqlConnection = new SqlConnection(connectionString))
{
  sqlConnection.Open();
  using (var sqlCommand = new SqlCommand(scriptText, sqlConnection))
  {
    sqlCommand.ExecuteNonQuery();
  }
}

初めて DB を作成するために呼び出してから、この DB への接続文字列を形成し、いくつかの作業を試みます (Open正常に動作し、この 2 番目の接続に対して接続が実際に開いていると表示されます)。しかし、「既存の接続がリモート ホストによって強制的に閉じられました」というメッセージが表示され、「データベース ID 9 が見つかりませんでした。データベースはまだアクティブ化されていないか、移行中の可能性があります」という sql ログが表示されます。というわけで、実際にExecuteNonQuery仕事が終わる前にリターン。確かに、状況が変わるまでスパムを送信することはできますが、DB の準備が整うまで待つより良い方法はありますか?

4

3 に答える 3

0

作成後すぐに別の作業 (データベース スキーマの更新など) を行うと、この問題に気付くことがあります。数秒待つと問題が解決するようです。

//wait for database creation
Thread.Sleep(3000);
于 2015-11-30T09:24:41.320 に答える