的问题是,我用我的SqlConnection
作为公共静态连接,想这可能是导致形式不时出错的问题:正确的SqlConnection声明
*连接未打开或连接已经打开了
因此,在静态类中使用SqlConnection
的一条语句是可以的吗?
,这样我可以声明它只有一次,我知道我可以在web.config
ConfigurationManager.ConnectionStrings["conn"].ConnectionString ...
使用connectionString
但我喜欢它留无关web.config
设置或服务器名称。
- 重新编辑:
,因为它真的是同一类内孤单两种方法还在于主类另一个类 但这并不是什么重要的,而不是使用所有 执行相同的连接!所以你说,即使我用我的帮助类 正确的代码编辑这是错误的?
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;
}
}
我怀疑的主要问题是这两个选项:
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");
算得上是不稳定的或容易出错?
P.S:我通过尝试catch执行命令
try
{
Conn.Open();
cmd.ExecuteNonQuery();
}
catch (System.Data.SqlClient.SqlException ex)
{
throw new Exception("No Can Do: " + ex.Message);
}
finally
{
Conn.Close();
}
是Using
说法更合适呢?虽然这不是我的问题,我在想...如果我已经试图按照'本书'来做...
这里的任何方法实际上是错误其中?
为什么你有一个内部类 –