我初学c#.net 经常看到以下 两种连接数据库的方式 [不知道能不能算两种 ,暂且算是两种吧 ]   
一:
     string connet_string, sqlstring;
        sqlstring = "select * from prcm06";
        connet_string = ConfigurationManager.AppSettings["ConnectionString"];
        SqlConnection connet = new SqlConnection(connet_string);
        SqlDataAdapter adapt = new SqlDataAdapter(sqlstring, connet);
        DataSet Ds = new DataSet();
        adapt.Fill(Ds);
        GridView1.DataSource = Ds.Tables[0];
        GridView1.DataBind();二:
        string sqlstring;
        sqlstring = "select * from ctlm06";
        SqlConnection Sqlcon = new SqlConnection();
        SqlCommand SqlCom = new SqlCommand();
        SqlDataAdapter SqlDA = new SqlDataAdapter();
        DataSet ds = new DataSet();
        Sqlcon.ConnectionString = ConfigurationManager.AppSettings["ConnectionString"].ToString();
        Sqlcon.Open();
        SqlCom.Connection = Sqlcon;
        SqlDA.SelectCommand = SqlCom;
        SqlCom.CommandText = sqlstring;
        SqlCom.ExecuteNonQuery();
        SqlDA.Fill(ds, "ctlm06");
        GridView1.DataSource = Ds.Tables[0];
        GridView1.DataBind();
这两种有什么区别  其实第二个就是多用了    SqlCommand ,是不是效率有区别呢  我怀疑是一种方法的变种写法 各位大侠有什么高见

解决方案 »

  1.   

    一个是断开式
    SqlDataAdapter一个是持久式
    SqlCommand
      

  2.   

    SqlDataAdapter  是适配器  负责给  ds 取数据,取完之后就断开了
      

  3.   

    楼主的两种连接都是Vs2003的过时的方法,连接字符都在config文件的<appSettings>..</appSettings>中,
    而vs2005应该是连接字符都在config文件的<connectionStrings>...</connectionStrings>中,
    对应的写法是:
    SqlConnection Conn = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString);
    vs2005这一改变,可以应付各种连接数据库的情况:
    1.传统的代码方式
    2.强类型的DataSet
    3.vs2005的各种数据源控件
      

  4.   


    是不是每一个不同的查询都写一个类我看到很多例子连接数据库都是写类的  还望 xtra6714  明示
      

  5.   

    现阶段有很多成熟的数据库操作项目,ms也有个Enterprise Library,很强的功能,可以看看