原来我的代码如下:
private void iband()
{
    string str = ConfigurationManager.ConnectionStrings["connstring"].ConnectionString;
    SqlConnection conn = new SqlConnection(str);
    conn.Open();
    SqlDataAdapter sda = new SqlDataAdapter("select * from t1",conn);
    DataSet ds = new DataSet();
    sda.Fill(ds);
    GridView1.DataSource = ds;
    GridView1.DataBind();
    conn.Close();
}每次都这样好麻烦,能不能用一个类写得简单一点?
我的想法是写一个方法传入一个"select * from t1"这样的字符串,和一个GridView1就可以做到数据的绑定,这样不知道能不能行?

解决方案 »

  1.   

    sqlhelper  是MS 写的类,这还不好啊??
      

  2.   

    sqlhelper  是MS 写的类,这还不好啊??
      

  3.   

    直接用SQLHELPER就行啊
    多牛
    写出这个来的真牛啊
    好类,好类啊
      

  4.   

    那sqlhelper的连接怎么关闭啊?
    比如说像我下面这样调用
    DataSet ds = SqlHelper.ExecuteDataset(SqlHelper.ConnectionString,CommandType.Text,"select * from all_alluser");
    GridView1.DataSource = ds;
    GridView1.DataBind();
    它怎么关闭连接?
      

  5.   

    他在SqlHelper.ExecuteDataset方法内部就关闭了连接,此方法将数据读取到DataSet(内存中),然后关闭连接,多熟悉ADO.NET吧离线型的数据操作不同于ADO
      

  6.   

    http://topic.csdn.net/u/20080929/08/f5ea8a99-8aa9-444b-8da5-1a4b73242c6b.html
    我总结了三种常用的SQLHelper,你可以参考一下。
    http://topic.csdn.net/u/20080922/07/2a72cd1a-b4ab-4781-8ba0-55bd836de699.html
    你找找吧,每一种都有详细用法。
      

  7.   

    public class SQLHelper
    {
    /// 连接数据源
    private SqlConnection con = null;

    /// <summary>
    /// 打开数据库连接.
    /// </summary>
    private void Open()
    {
    // 打开数据库连接
    if(con == null)
    {
                
                ConnectionStringSettings conSS = ConfigurationManager.ConnectionStrings["ldxkxxglxt"];
                string conString = conSS.ConnectionString;
                con = new SqlConnection(conString);
                   
    } if(con.State == ConnectionState.Closed)
    {
    try
    {
    ///打开数据库连接
    con.Open();
    }
    catch(Exception ex)
    {
    SQLHelper.CreateErrorMsg(ex.Message);
    }
    finally
    {
    ///关闭已经打开的数据库连接
    }
    }
    } /// <summary>
    /// 关闭数据库连接
    /// </summary>
    public void Close()
    {
    ///判断连接是否已经创建
    if(con != null)
    {
    ///判断连接的状态是否打开
    if(con.State == ConnectionState.Open)
    {
    con.Close();
    }
    }
    }
    public void RunSQL(string sqlselect,  ref DataSet dataSet)
        {
            if (dataSet == null)
            {
                dataSet = new DataSet();
            }        Open();
            ///创建SqlDataAdapter
            SqlDataAdapter da = new SqlDataAdapter(sqlselect,con);
            ///读取数据
            da.Fill(dataSet);
            ///关闭数据库的连接
            Close();
        }
    }
      

  8.   

    给你推荐Ivony的独家产品,个人觉得还不错http://www.cnblogs.com/Ivony/archive/2007/06/10/778489.html
      

  9.   

    sqlhelper这么牛的东西还觉得不好呀, 不知道LZ还想要多么好地
      

  10.   

    我使用的sqlhelper是这样的public static DataSet ExecuteDataset(string connectionString, CommandType commandType, string commandText)
    {
        // Pass through the call providing null for the set of SqlParameters
        return ExecuteDataset(connectionString, commandType, commandText, (SqlParameter[])null);
    }
    我直接就下面这样用有问题吗?
    DataSet ds = SqlHelper.ExecuteDataset(SqlHelper.ConnectionString,CommandType.Text,"select * from all_alluser"); 
    GridView1.DataSource = ds; 
    GridView1.DataBind(); 这样的语句怎么关闭?
      

  11.   

    这句不需要关闭啊,SqlHelper里已经关闭了
      

  12.   


    DataSet ds = SqlHelper.ExecuteDataset(SqlHelper.ConnectionString,CommandType.Text,"select * from all_alluser"); 
    GridView1.DataSource = ds.Tables[0]; 
    GridView1.DataBind(); 
      

  13.   

    但我在sqlhelper里面没有发现任何close()字样的语句啊,怎么知道它关闭了?
      

  14.   

    DataAdapter 填充是可以不显式打开和关闭 Connection。
    如果 Fill 方法发现连接尚未打开,它将隐式地打开 DataAdapter 正在使用的 Connection。
    如果 Fill 已打开连接,则它还将在 Fill 完成时关闭连接。
    当处理单一操作(如 Fill 或 Update)时,这可以简化您的代码。但是,如果您在执行多项需要打开连接的操作,则可以通过以下方式提高应用程序的性能:
    显式调用 Connection 的 Open 方法,对数据源执行操作,然后调用 Connection 的 Close 方法。
    应尝试使数据源的连接打开的时间尽可能短,以便释放资源供其他客户端应用程序使用。