新手求大家帮帮忙谢谢ExecuteReader 要求已打开且可用的连接。连接的当前状态为正在连接。
不知道为什么出现了这个问题
ExecuteReader 要求已打开且可用的连接。连接的当前状态为正在连接。 但是我看了下我都是关闭连接的不知道怎么解决求大侠看看谢谢
public class DataClass
{
static string conStr = ConfigurationManager.ConnectionStrings["LoveSiteConnectionString22"].ConnectionString;
public static SqlConnection mConns = new SqlConnection(conStr);
public static SqlConnection KC()
{
if(mConns.State== ConnectionState.Closed)
{
mConns.Open();
}
else if (mConns.State == ConnectionState.Open)
{
mConns.Close();
}
return mConns;
}
public static string ComReStr(SqlCommand com)
{
string re = "";
com.Connection = KC();
try
{
re = com.ExecuteScalar().ToString();
}
catch (Exception e)
{
//throw (e);
}
finally
{
com.Dispose();
mConns.Close();
mConns.Dispose();
}
return re;
}
public static int ExeSql(SqlCommand com)
{
int re = 0;
com.Connection = KC();
try
{
re=com.ExecuteNonQuery();
}
catch (Exception e)
{
throw e;
}
finally
{
mConns.Close();
com.Dispose();
}
return re;
}
public static DataTable GetDataTable(SqlCommand com)
{
com.Connection = KC();
SqlDataAdapter sa = new SqlDataAdapter(com);
DataSet ds = new DataSet();
DataTable dt = new DataTable();
try
{
sa.Fill(ds);
dt = ds.Tables[0];
}
catch (Exception e)
{
throw (e);
}
finally
{
mConns.Close();
com.Dispose();
sa.Dispose();
}
return dt;
}
}
分享到:
[解决办法]
保证数据库的正常连接,KC中不应该将其关闭,如果数据库状态为连接,那么初始化时就将其关闭了
#region 连接设置
/// <summary>
/// 打开连接
/// </summary>
/// <param name="conn">连接对象</param>
public static void OpenConnection(DbConnection conn)
{
if (conn.State == ConnectionState.Closed)
{
conn.Open();
}
else if (conn.State == ConnectionState.Broken)
{
CloseConnection(conn);
conn.Open();
}
}
/// <summary>
/// 关闭连接
/// </summary>
/// <param name="conn">连接对象</param>
public static void CloseConnection(DbConnection conn)
{
conn.Close();
}
来晚了,问题解决了