SqlTransaction transaction = connection.BeginTransaction()
C# アプリケーションで SQLServer からデータを取得するために使用しています。
サーバーへの接続がない(インターネット接続がない)場合に発生する問題は、アプリケーションがフリーズして動作を停止し、例外もエラーもなく、フリーズするだけです。
エラーをキャッチするために使用しようとしtry catch
ましたが、それでもアプリケーションがフリーズするだけで、唯一のオプションはアプリケーションを強制終了することです。誰でもこのエラーをキャッチするのを手伝ってもらえますか?フリーズする代わりにエラーが発生します-のようにConnection to server failed. Please check internet connection.
接続用のクラスコードは次のとおりです。
public static class RequestID
{
// Methods
public static int GetID(string server, string database, string user, string pass)
{
int num = 0;
using (SqlConnection connection = new SqlConnection(string.Format("server={0};database={1};uid={2};pwd={3};Connect Timeout=900", new object[] { server, database, user, pass })))
{
SqlCommand command = new SqlCommand("SELECT Value_Int FROM Param WHERE code= 'counter'");
SqlCommand command2 = new SqlCommand("UPDATE Param SET Value_Int = Value_Int + 1 WHERE code= 'counter'");
if (connection.State != ConnectionState.Open)
{
connection.Open();
}
try
{
using (SqlTransaction transaction = connection.BeginTransaction())
{
try
{
command.Connection = connection;
command.Transaction = transaction;
command2.Connection = connection;
command2.Transaction = transaction;
num = (int)command.ExecuteScalar();
command2.ExecuteNonQuery();
transaction.Commit();
}
catch (Exception)
{
transaction.Rollback();
throw;
}
finally
{
if (connection.State != ConnectionState.Closed)
{
connection.Close();
}
}
}
}
catch (Exception ex)
{
throw;
}
return num;
}
}
}
問題は次のとおりです。
using (SqlTransaction transaction = connection.BeginTransaction())
前もって感謝します。
PS アプリケーションは問題なく動作します。これまでのところ唯一の問題は、インターネットへの接続が失われたことです。私は解決策を見つけることができませんでした...