DataTable dt = Class1.ExecSel("select Copyright from wj_Copyright");
Copyright = Convert.ToString(dt.Rows[0]["Copyright"].ToString());

解决方案 »

  1.   

    Class1.ExecSel 这个方法贴出来啊
      

  2.   

    你的意思是关闭数据库连接??
    贴出数据库连接代码
    一般DataTable 取出应该关闭数据库连接
    此时DataTable 已经在内存中了
      

  3.   

    using(DataTable dt = Class1.ExecSel("select Copyright from wj_Copyright"))
    {
        Copyright = Convert.ToString(dt.Rows[0]["Copyright"].ToString());
    }
      

  4.   

    public class Class1
    {
    public Class1()
    {
    //
    // TODO: 在此处添加构造函数逻辑
    //
    }
        public static SqlConnection DBconnection()
        {
            return new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString);    }
        public static DataTable ExecSel(string sql)
        {
            SqlConnection con = Class1.DBconnection();
            con.Open();
            SqlCommand com = new SqlCommand(sql, con);
            SqlDataAdapter oda = new SqlDataAdapter();
            DataSet ds = new DataSet();
            oda.SelectCommand = com;
            oda.Fill(ds);
            ds.Dispose();
            con.Close();
            con.Dispose();
            com.Dispose();
            return ds.Tables[0];    }
        public static string SelOne(string sql)
        {
            SqlConnection con = Class1.DBconnection();
            con.Open();
            SqlCommand com = new SqlCommand(sql, con);
            return com.ExecuteScalar().ToString();
            con.Close();
            con.Dispose();
            com.Dispose();
        }
        public static void ExecSql(string sql)
        {
            SqlConnection con = Class1.DBconnection();
            con.Open();
            SqlCommand com = new SqlCommand(sql, con);
            com.ExecuteNonQuery();
            con.Close();
            con.Dispose();
            com.Dispose();
           
        }
        public static IDataReader GetDataReader(string sql)
        {
            SqlConnection con = Class1.DBconnection();
            con.Open();
            SqlCommand cmd = new SqlCommand(sql, con);
            SqlDataReader da = cmd.ExecuteReader(CommandBehavior.CloseConnection);
            return da;
            con.Close();
            con.Dispose();
            cmd.Dispose();
            
        }
      

  5.   

    根本不用,lz 上 MSDN 仔细看看 using 滴用法吧!
      

  6.   

    protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                DataTable dt = Class1.ExecSel("select Copyright from wj_Copyright");
                Copyright = Convert.ToString(dt.Rows[0]["Copyright"].ToString());
            }
        }
    }
      

  7.   

    DataTable dt = Class1.ExecSel("select Copyright from wj_Copyright"); 
    我想知道这段代码 关闭没有 为什么 我在SQL的进程看的时候 select Copyright from wj_Copyright总有这个?
      

  8.   

    public static DataTable ExecSel(string sql) 
        { 
            SqlConnection con = Class1.DBconnection(); 
            con.Open(); 
            SqlCommand com = new SqlCommand(sql, con); 
            SqlDataAdapter oda = new SqlDataAdapter(); 
            DataSet ds = new DataSet(); 
            oda.SelectCommand = com; 
            oda.Fill(ds); 
            ds.Dispose(); 
            con.Close(); 
            con.Dispose(); 
            com.Dispose(); 
            return ds.Tables[0];     } 不是已经关闭了吗?
     ds.Dispose(); 
            con.Close(); 
            con.Dispose(); 
            com.Dispose();
      

  9.   

    我想知道为什么我在SQL里面查看进程的时候 进程都有好多个 显示 select Copyright from wj_Copyright 这段代码的在进程里面啊??????
      

  10.   

    我想知道为什么我在SQL里面查看进程的时候 进程都有好多个 显示 select Copyright from wj_Copyright 这段代码的在进程里面啊??????
      

  11.   

    datatable用完后才会关闭连接!
      

  12.   

    你试试用datareader做同样的事,就会发现读完reader后连接的那句close就关闭了的。