毎回、アプリケーションがデータベースへの接続を失いました。データベースへの接続を取得すると、エラーが発生しました。
データベースクラス私はチュートリアルサイトから入手したものですが、上記のエラーを除いて素晴らしいことがあります。タイムアウトを推測しています。使用している人が煙が出て戻ってきて彼らが中断したところで続ける。
通常のエンドユーザが粗くなっているとエラーメッセージが表示され、その後エラーメッセージが表示されます。
しかし、エラーが、私は、私は、これはFirebirdのDBサーバとAC#アプリケーション
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Windows.Forms;
using FirebirdSql.Data.FirebirdClient;
namespace _0912111
{
class DatabaseConnection
{
private FbConnection conn;
private FbCommand sqlCommand;
private FbDataAdapter DB;
private DataSet DS = new DataSet();
public DatabaseConnection()
{
conn = new FbConnection("User=myuser;" + "Password=mypw;" + "Database=dbpath;" + "DataSource=serverip;" + "Port=dbport;" + "Dialect=3;" + "Charset=UTF8;");
}
public void showDbError(string theError)
{
MessageBox.Show("Could not connect to database\n\nError Details:\n" + theError);
}
public FbConnection Openconn()
{
if (conn.State == ConnectionState.Closed || conn.State == ConnectionState.Broken)
{
try
{
conn.Open();
}
catch (Exception e)
{
showDbError(e.Message.ToString());
}
}
return conn;
}
public FbConnection Closeconn()
{
if (conn.State == ConnectionState.Open)
{
conn.Close();
}
return conn;
}
public void nonQuery(string txtQuery)
{
FbCommand cmd = new FbCommand(txtQuery);
try
{
cmd.Connection = Openconn();
cmd.ExecuteNonQuery();
}
catch (Exception Ex)
{
showDbError(Ex.Message.ToString());
throw Ex;
}
finally
{
cmd = null;
}
}
public FbDataReader returnDataReader(string txtQuery)
{
FbCommand cmd = new FbCommand();
try
{
cmd.Connection = Openconn();
cmd.CommandText = txtQuery;
FbDataReader rd;
rd = cmd.ExecuteReader();
return rd;
}
catch (Exception Ex)
{
showDbError(Ex.Message.ToString());
throw Ex;
}
finally
{
cmd = null;
}
}
}
}
でそのエラーを防ぐために変更することができ、このコードのどの部分
を求めるだろうと思った再び来るまで
if (conn.State == ConnectionState.Closed || conn.State == ConnectionState.Broken) {
がそれを妨げると言う彼女のコードと思うだろう?
だけ)connが== nullの私はちょうどconn.Openを(使用している場合、もしCONN!= nullを –
@SenadMeškin前に確認してください)または私はDatabaseConnection(のような新しいFbConnectionを()リコールしなければならないのでしょうか? – thegaffney
また、コードにいくつかのロギングを追加することもできます。これにより、ユーザーがダイアログを閉じても常に例外が発生します。 – scottm