問題は、SqlConnection
これが時々エラーを引き起こす問題である可能性があると考えて、パブリック静的接続として使用したことです。
*接続が開いていないか、接続が既に開いていた
SqlConnection
では、静的クラスで の1 つのステートメントを使用しても問題ないでしょうか?
一度だけ宣言できるようconnectionString
に、使用できることを知っていますweb.config
ConfigurationManager.ConnectionStrings["conn"].ConnectionString ...
web.config
ただし、設定やサーバー名とは無関係のままにするのが好きです。
- 再編集:
実際には同じクラス内の2つのメソッドであるため、そのメインクラスには別のクラスもありますが、すべての実行に同じ接続を使用するのではなく、これは重要ではありません! ヘルパークラスの正しいコードで編集し直したとしても、これは間違っているとあなたは言いますか?
public static class myDBhelper
{
public static SqlConnection Conn = new SqlConnection ("server=(local);Initial Catalog=dbName;Integrated Security=True");
public static int ExecSQLint(string TblintSQL)
{
int anIntValue=0;
SqlCommand TblintCMD = new SqlCommand(TblintSQL, Conn);
try
{
Conn.Open();
anIntValue = Convert.ToInt32(TblintCMD.ExecuteScalar());
}
catch (System.Data.SqlClient.SqlException ex)
{
throw new Exception("No Can Do: " + ex.Message);
}
finally
{
Conn.Close();
}
return anIntValue;
}
public static string ExecSQLstring(string TblStrSQL)
{
string strValue="";
SqlCommand TblStrCMD = new SqlCommand(TblStrSQL, Conn);
try
{
Conn.Open();
strValue = TblStrCMD.ExecuteScalar().ToString();
}
catch (System.Data.SqlClient.SqlException ex)
{
throw new Exception("No Can Do: " + ex.Message);
}
finally
{
Conn.Close();
}
return strValue;
}
}
私が疑う主な問題は、次の2つのオプションです。
SqlConnection Conn = new SqlConnection("Data Source=(local);Integrated Security=True;database=dbName")
私のDBhelper
クラスでは、この宣言を使用していました
SqlConnection Conn = new SqlConnection("server=(local);Initial Catalog=dbName;Integrated Security=True");
それは不安定またはエラーが発生しやすい可能性がありますか?
ps: try catch でコマンドを実行しています
try
{
Conn.Open();
cmd.ExecuteNonQuery();
}
catch (System.Data.SqlClient.SqlException ex)
{
throw new Exception("No Can Do: " + ex.Message);
}
finally
{
Conn.Close();
}
Using
ステートメントはより適切ですか?それは私の問題ではありませんが、私は考えていました...もし私がすでに「本で」それをやろうとしているなら...
ここで実際に間違っている方法はありますか?