C# 为连接字符串创建单独的类
我正在尝试为名为connection.cs的连接创建单独的类,为什么在执行查询时出现此错误C# 为连接字符串创建单独的类,c#,winforms,C#,Winforms,我正在尝试为名为connection.cs的连接创建单独的类,为什么在执行查询时出现此错误 ExecuteOnQuery需要一个打开的可用连接。连接的当前状态为关闭 我做错了什么 在我的Dal.cs课上 public void Insert(string f1,string f2) { string query; Connection c = new Connection();
ExecuteOnQuery需要一个打开的可用连接。连接的当前状态为关闭
我做错了什么
在我的Dal.cs课上
public void Insert(string f1,string f2)
{
string query;
Connection c = new Connection();
c.OpenCnn();
try {
query = "inset into ..."
cmd = new SqlCommand(query, con);
cmd.ExecuteNonQuery();
}
catch (Exception ex){
throw ex;
}
finally {
c.CloseCnn();
}
}
在我的连接课上
public class Connection
{
SqlCommand cmd = new SqlCommand();
SqlConnection con = new SqlConnection();
public void OpenCnn()
{
string cnnStr = ConfigurationManager.ConnectionStrings["myconnstrng"].ToString();
con = new SqlConnection(cnnStr);
con.Open();
}
public void CloseCnn()
{
con.Close();
}
}
当前con字段是
私有的
,无法从连接
类外部访问
您可以向连接类添加属性:
public SqlConnection Connection { get { return con; } }
然后通过您的实例访问它:
Connection c = new Connection();
c.OpenCnn();
try
{
query = "inset into ..."
cmd = new SqlCommand(query, c.Connection);
cmd.ExecuteNonQuery();
}
顺便说一句,我不确定您在Insert
方法中的con
指的是什么(可能是一个局部变量,而不是con
字段,否则它甚至无法编译)
方法插入
:
注意SqlCommand
公共属性的初始化和使用conn
public void Insert(string f1, string f2)
{
string query;
Connection c = new Connection();
c.OpenCnn();
try
{
query = "insert into ..."
SqlCommand cmd = new SqlCommand(query, c.Conn);
cmd.ExecuteNonQuery();
}
catch (Exception ex){
throw ex;
}
finally {
c.CloseCnn();
}
}
你试过调试吗?你得到的错误是什么?什么时候?尝试调试插入方法中的
con
来自何处?在Connection
class.thnx中没有任何内容是公共的。它起作用了我正在定义SqlConnection con=newsqlconnection();在我的insert方法中
public void Insert(string f1, string f2)
{
string query;
Connection c = new Connection();
c.OpenCnn();
try
{
query = "insert into ..."
SqlCommand cmd = new SqlCommand(query, c.Conn);
cmd.ExecuteNonQuery();
}
catch (Exception ex){
throw ex;
}
finally {
c.CloseCnn();
}
}