数据库有一张表,表结果为(id,info),我在窗体有一个textbox可供用户输入id,然后进入数据库中查询,有记录的话将在窗体中的datagridview中显示,但是我希望查询一次datagridview就添加一行,然后查询了很多次之后就得到很多行结果了。
然后就是想不清楚咋做,我查询一次就有一张新的datatable,然后都加入到dataset中,但是我查到的方法是加入到dataset中的table1,table2等等上去,请问有没有直接讲结果并在一张表的呢?或者如何在datagridview中显示dataset中全部数据?

解决方案 »

  1.   


    Table1.Merge(table2);datagridview.DataSource=Table1;
      

  2.   

    新建一个DataTable,和你数据库的表结构一致,像下面这样写。
    DataTable dt= new DataTable ();DataColumn newCol = new DataColumn("id", Type.GetType("System.Int32"));
    DataColumn newCol = new DataColumn("info", Type.GetType("System.String"));
    dt.Columns.Add(newCol);然后你不是查询一次就有一个datatable了嘛,其实这个datatable的数据也就是一行,把它的值插入到新建的databale里。如:
    table.Rows.Add(datatable.rows[0]["id"],datatable.rows[0]["info"]);最后绑定的时候datasource=dt;就可以了。
      

  3.   

    或者你每次查出来,都把datatable重新构建一下(再加一行),就行了
      

  4.   

    首先你创建个datatable,是全局变量DataTable dt = new DataTable();//新建的表
    dt.Columns.Add("id", Type.GetType("System.String"));
    dt.Columns.Add("info", Type.GetType("System.String"));每次你点击的时候
    DataRow dr = dt.NewRow();
    dr["id"] = "你附的值";
    dr["info"] = "你附的值";
    dt.Rows.Add(dr);
    dataGridView1.DataSource = dt;
      

  5.   

    如果是使用DataAdapter的话,就直接Fill到DataSet的固定一个DataTable里(可能需要先自行创建这个DataTable)
    检查这个DataAdapter是否有ClearBeforeFill属性,如果有,先将其设置为false
      

  6.   

    也可以用INotifyPropertyChanged来做,实现这个接口,Collection的属性随意变,贼拉好使。呵呵,仅供参考
      

  7.   

    你这个简单,分两个表就成,比如绑定datagridview的是table1。查询出来的数据是table2
    当你每次查询完数据后就把table2的数据读出来增加到table1中在绑定datagridview就成了。
      

  8.   

    DataAdapter.Fill(DataTable)并不会先清除表内原有的数据(除非有ClearBeforeFill属性,且为true),而是视主键是否存在进行合并或追加