连接字符串 = 当我使用连接方法超过 1 次时为空
本文关键字:连接 方法 字符串 | 更新日期: 2023-09-27 18:36:37
我的连接字符串有问题,我有一个带有字符串参数的执行方法来接收查询,
public class Create_Connection
{
public static readonly string CONN_STRING =
ConfigurationManager.ConnectionStrings["TaskConnectionString"].ConnectionString;
public static readonly SqlConnection SqlConn = new SqlConnection(CONN_STRING);
public static readonly SqlConnection CONN = new SqlConnection(CONN_STRING);
public DataSet ExecuteSql(string sql)
{
SqlDataAdapter da;
DataSet ds;
if (CONN.State == ConnectionState.Open)
CONN.Close();
CONN.Open();
da = new SqlDataAdapter(sql, CONN_STRING);
ds = new DataSet();
da.Fill(ds);
CONN.Dispose();
CONN.Close();
return ds;
}
}
当我第一次使用它时,它的工作会,但是当第二次查询的时间使用执行方法时,我的程序停止并给我这个masseg:"ConnectionString属性尚未初始化"! 和内部异常:"null"!!
当它第一次工作时,这怎么可能,然后在连接字符串为"静态只读"时更改!!
并提前感谢:)..
不要使用静态 SqlCOnnection。
public class Create_Connection
{
public static readonly string CONN_STRING = ConfigurationManager.ConnectionStrings["TaskConnectionString"].ConnectionString;
public static readonly SqlConnection SqlConn = new SqlConnection(CONN_STRING);
//public static readonly SqlConnection CONN = new SqlConnection(CONN_STRING);
public DataSet ExecuteSql(string sql)
{
SqlDataAdapter da;
DataSet ds;
using (var CONN = new SqlConnection(CONN_STRING)) {
//if (CONN.State == ConnectionState.Open)
// CONN.Close();
CONN.Open();
da = new SqlDataAdapter(sql, CONN_STRING);
ds = new DataSet();
da.Fill(ds);
//CONN.Dispose();
CONN.Close();
}
return ds;
}
}
并在使用它时创建变量。喜欢这个
public class Create_Connection
{
public static readonly string CONN_STRING = ConfigurationManager.ConnectionStrings["TaskConnectionString"].ConnectionString;
public static readonly SqlConnection SqlConn = new SqlConnection(CONN_STRING);
public DataSet ExecuteSql(string sql)
{
var ds = new DataSet();
using (var CONN = new SqlConnection(CONN_STRING)) {
CONN.Open();
var da = new SqlDataAdapter(sql, CONN_STRING);
da.Fill(ds);
CONN.Close();
}
return ds;
}
}