DataSet dsttitles=new DataSet();DataTable dtblTitles;
DataColumn dcolPrice;
DataRow drowTitle; SqlConnection conn=new SqlConnection("server=lochost;uid=a;pwd=b;database=pubs");SqlDataAdapter cmddata=new SqlDataAdapter("select title,price from titles",conn);
cmddata.Fill(dsttitles,"titles");dtblTitles=dsttitles.Tables["titles"];dcolPrice=dtblTitles.Columns["price"];drowTitle=dtblTitles.NewRow();
dtblTitles.Rows.Add(drowTitle);//DataGrid1.DataSource=dtblTitles;   邦定到datatable
DataGrid1.DataSource=dsttitles;      邦定到datasetDataGrid1.DataBind();出来的结果都一样,怎么回事啊?
怎么会到最后会多一条空行啊??
怪了,databrid是不是在datatable中的数据是从dataset中来得到这样情况下,随便邦定到那个都可以啊??

解决方案 »

  1.   

    你的DATASET里只有一个DATATABLE嘛,所以结果都是一样的了
    如果有多个表,可以用DataMember来选择表
      

  2.   

    drowTitle=dtblTitles.NewRow();
    dtblTitles.Rows.Add(drowTitle);
    所以会有一个空行。
    如果你绑定到DataSet,显示的数据应该是DatsSet.Tables[0]。我没有测试过是不是都是这样。
      

  3.   

    1。drowTitle=dtblTitles.NewRow();
    2。dtblTitles.Rows.Add(drowTitle);1。是起一个新行
    2。是把这个新行的数据写入到datatable里去,这二行是必不可少的呀TO:努力学习,不明白
      

  4.   

    你是DataSet里只有一个DataTable,如果是两个,绑定这两种形式就不同了
      

  5.   

    1。drowTitle=dtblTitles.NewRow();
    只是new了一个框架,没有数据
    2。dtblTitles.Rows.Add(drowTitle);
    你把空行添加到table如果是winform,且邦定的dataset里面有多个表,那么显示的时候程序会让你选择哪个表。
      

  6.   

    没用
    它是一个空行,怪了
    如果,程序里写个默认值,在这空格里就会显示出来了还有在问一下,在用dataset时,数据都在内存里,它自己会不会自动释放啊?
      

  7.   

    up  NetCode(灵光)
    你要自己写数据的话:
    drowTitle=dtblTitles.NewRow();
    drowTitle["title"] = "my title";
    drowTitle["price"] = 23;
    dtblTitles.Rows.Add(drowTitle);
    这样添加的才是有数据的行。
      

  8.   

    绑定到dataset或datatable懂了
    谢谢。。
    但还有一个问题好像还不是很清楚
    谢谢。。
    各位
      

  9.   

    DataSet引用全部释放后,就会释放数据所占用内存,你不用担心,DataSet是纯受控代码,不会有内存泄漏。
      

  10.   

    那怎么才知道它引用结果了吗?
    看介绍说,dataset是把数据读入到内存后断开与数据库的联接
    是不是。NET框架会自动根据当前情况,释放内存的吧
      

  11.   

    .Net框架会自动释放,不用担心。
    只要把你的数据库链接关了结可以了。conn.Close();
      

  12.   

    把DataGrid的ShowFooter="False"试试