C#,SQL查询后数据添加到datagridview中,查询一条添加一条。如何写?

private void btn查询_click(object sender, KeyPressEventArgs e)
{
SqlConnection conn = BaseClass.DBConn.UserCon();
SqlDataAdapter sda=new SqlDataAdapter ("Select UserID,UserName,UserPwd,Power From tb_User Where UserID='"+textBox1.Text+"'", conn);
DataSet ds=new DataSet();
sda.Fill(ds);
dataGridView1.Rows.Add(ds.Tables[0].Rows[0]["UserID"], ds.Tables[0].Rows[0]["UserName"], ds.Tables[0].Rows[0]["UserPwd"]);
}
-----------------------------------------------------
这样写了下好像可以运行,后面那添加字段值的写法对不对?
有没有把sql查询结果添加到ds里的方法,最后datagridview1.dataresouce=ds即可,如何写啊,求程序。
我这个问题最后写错了点儿。不按照上面datagridview1.rows.add(....)写,若改为datagridview1.datasource=ds.Tables[0];结果就是只有查询的一条数据反复刷新。
现在需要往datagridview1里添加,按查询添加第一条,再查询添加第二条。。。(上面的程序就已经实现了)
若用DataTable,能否写详细点。

我的理解:您先查找一条记录,datagridview就添加一行,而且以前的记录还显示。
datagirdview只能对应dataset里的某一个datatable,所以可以这样:
dataset内放两个datatable,一个叫"dtSource",一个叫"dtNewRow"。
每查一行,你就将此行记录放进dtNewRow中,然后再读取到dtSource内,最后datagridview1.dataresouce=ds.Tables["dtSource"];就ok了
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-09-07
datagridview1.dataresouce = ds.Tables[0];
或者你在sda.Fill(ds)时改为 sda.Fill(ds,"tableName");
然后datagridview1.dataresouce = ds.Tables["tableName"]即根据关键字索引来找到对应的DataTable
记住,DataSet相当于本地数据库 里面有 Tables集合,是一张张本地数据表DataTable,而GridView显示的正是DataTable,所以你只要对应到一张DataTable即可
第2个回答  2011-09-16
sql语句时候加个变量对他得userid进行控制每次点击让变量加一这样就可以对数据库中的数据进行提取1条,2条,3条......的查询SqlDataAdapter sda=new SqlDataAdapter ("Select UserID,UserName,UserPwd,Power From tb_User Where UserID<'"+变量.tostring()+"'", conn);