请问下面两段代码可以用这两种方法写么   ?
不一样的是这两句,我就是不明白,这两个写法能否互换,
在什么情况下必须只能用其中一种写法呢?
girdview1.DataSource = ds;
girdview1 = ds.Tables["abc"].DefaultView;
con.open();
string cmdtext = "select top8 shipname,shipaddress from orders";
SqlDataAdapter sda = new SqlDataApter(cmdtext,con);
DataSet ds = new DataSet();
sda.Fill(ds);
girdview1.DataSource = ds;
girdview1.DataBind();string cmdtext = "select shipname from orders";
SqlDataAdapter sda = new SqlDataApter(cmdtext,con);
DataSet ds = new DataSet();
sda.Fill(ds,"abc"); 
girdview1 = ds.Tables["abc"].DefaultView;
girdview1.DataBind();

解决方案 »

  1.   

    girdview1.DataSource = ds; 有时会有点问题就是可能ds里面会有多张表,那么girdview1到底显示哪个呢?这就需要再加一句girdview1.DataMember="表名";
      

  2.   

    使用ds.Tables["abc"].DefaultView,就是说使用DataSet中的表“abc”的视图。这个视图用途较多,比如,我们从数据库中Fill出数据到DataSet中的表内。假如我要按一个字段排序,则可能设置其视图的相关属性,很容易的实现。再就是实现内部的筛选,假如我要一个人事档案表,我可以首先从所有数据Fill到DataSet中的表内,然后设置筛选条件(比如某个部门),可以轻松的绑定到GridView,DataList中,这样你不必每次都要从数据库中Fill了。
      

  3.   

    绑定只能绑定一个表,如果dataset有多个表将绑定第一个表,你如果指定表名将绑定你指定的表名
    2,绑定的数据源可以是视图,视图的好处就是可以排序,筛选,如果你的数据已经排好序了,可以不用视图
      

  4.   

    两种写法在DS里面只有一个表时可以互换。在有多个表时就要用girdview1.DataSource = ds.Tables["abc"].DefaultView;
    或者
    girdview1.DataSource = ds;
    girdview1.DataMember="abc";