public class connection
{
    public string code(string constr)
    {
        constr = "server=PC-200910010718;database=考试系统;uid=sa;pwd=";
        return constr;
    }
    //连接数据库
    public SqlConnection ConOpen()
    {
        string constr = "";
        connection cs = new connection();
        constr = cs.code(constr);
        SqlConnection con = new SqlConnection(constr);
        con.Open();
        return con;
    }
}
protected void Button2_Click(object sender, EventArgs e)
{
        connection cn = new connection();
        cn.ConOpen();
//这里要关闭连接
}
这样能打开con(con.open()),要怎样实现con.close()呢?就是在connection类还要加哪些代码

解决方案 »

  1.   

    这种东西,参考一下dbhelper类吧。。http://www.cnblogs.com/nniixl/articles/1320863.html
      

  2.   

    SqlConnection connection = new SqlConnection(connectionString);
    connection.Open();
    ...
    connection.Close();
    直接写在click里就行了
      

  3.   


    刚写了个呢
     public static void Main()
            {
                string connextionString = "data source=172.31.212.9;initial catalog=d_lisa_Repository_dev01;UID=sa;PWD=rdc;";
                bool testResult = SQLConnectionState(connextionString);
                Console.WriteLine(testResult);
                Console.ReadKey();
            }        private static bool SQLConnectionState(string connectionString)
            {
                bool connectionState = false;
                SqlConnection sCon = new SqlConnection(connectionString);
                try
                {
                    sCon.Open();
                    if (sCon.State == System.Data.ConnectionState.Open)
                        connectionState = true;
                }
                catch
                {
                }
                finally
                {
                    sCon.Close();
                }
                return connectionState;
            }
      

  4.   

    你这里只是连接,并没有真正操作数据库,所以你比较迷茫,应该在执行完SQL语句后再close
      

  5.   

    就是啊!你用数据库的话应该先
    打开数据库
    对数据库进行操作
    关闭数据库。
    你应该在操作完数据的地方家上connection的close()方法。
    数据库open的方法也写的不全。应该这样写
    public static SqlConnection Connection
            {
                get
                {
                    string connectionString = System.Configuration.ConfigurationManager.ConnectionStrings["HMConnectionString"].ToString();
                    /*string connectionString = "Data Source=.\\SQLEXPRESS;AttachDbFilename=F:\\项目\\三层架构Demo\\Web\\App_Data\\MyBookShop.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True";*/
                    if (connection == null)
                    {
                        connection = new SqlConnection(connectionString);
                        connection.Open();
                    }
                    else if (connection.State == System.Data.ConnectionState.Closed)
                    {
                        connection.Open();
                    }
                    else if (connection.State == System.Data.ConnectionState.Broken)
                    {
                        connection.Close();
                        connection.Open();
                    }
                    return connection;
                }
            }
    大概就是这个意思,也没有时间具体的改
      

  6.   

    lz,你这个类 结构好混乱
        public string code(string constr)
        {
            constr = "server=PC-200910010718;database=考试系统;uid=sa;pwd=";
            return constr;
        }
    你把此方法的参数又作为方法的返回值,这不脱了裤子放屁嘛!  public SqlConnection ConOpen()
        {
            string constr = "";
            connection cs = new connection();
            constr = cs.code(constr);
            SqlConnection con = new SqlConnection(constr);
            con.Open();
            return con;
        }
    干嘛在本类的方法中new自己啊!看的我都麻了!
    上面的结构可以写成这样,简单清晰:
    public Class DBHelper
    {
       private string constr = "server=PC-200910010718;database=考试系统;uid=sa;pwd=";
        public static SqlConnection GetConn(constr)
        {     
           return new SqlConnection(constr);
        }
    }
    去找个例子看吧!这个东西挺有讲究的!写好要供整个程序调用
      

  7.   

    LZ如果非要坚持自己的做法,可以加一个关闭方法。
    但是你更应该接受大家的建议,把打开和关闭放在try..catch..finally中就行了
      

  8.   

    不知道该怎么回答了 楼主应该先先看看帮助,
    另外你在con.Open();
    和con.Close();
    的时候 最好加上Try ..Catch finally .
    要不容易出异常
      

  9.   

    多谢各位的解答,我改成这样大家看行吗?public class connection
    {
        //连接数据库
        public SqlConnection ConOpen()
        {
            SqlConnection con = new SqlConnection("server=PC-200910010718;database=考试系统;uid=sa;pwd=");
            try { con.Open(); }
            catch { }
            finally { con.Close(); }
            return con;
        }
    }
      

  10.   

    数据库的open和close不能分别写在两个函数里
      

  11.   

    你分成两个方法写啊,一个方法是打开con.open,另一个方法是关闭,关闭的方法传个参数就是你刚刚第一个方法中的返回值con啊