小弟想实现一个功能,获取一个ComboBox(comboQueryType )的Text内容作为查询时的字段名,一个TextBox(txtQueryContent)的TEXT属性作为该字段的查询条件——string strQueryContent = "Select * from table where " + comboQueryType .Text + "=" +"'" + txtQueryContent.Text + "'";关键是不知道怎么把这个结果在DataGridView控件上显示出来。
我试着写了这样的代码:DataTable tblContectQuery = new DataTable();
tblContectQuery.Load(oleReaderQueryResult); //oleReaderQueryResult是个OleDbDataReader类型,保存了查询的结果(数据库用的是ACCESS)
dataGridContact.DataSource = tblContectQuery;但显示在DataGridView里的是条空数据,迷茫了。
小弟初学C#,数据库操作这块没什么思路,还望各位大侠们LEND ME A HAND 一下下
我试着写了这样的代码:DataTable tblContectQuery = new DataTable();
tblContectQuery.Load(oleReaderQueryResult); //oleReaderQueryResult是个OleDbDataReader类型,保存了查询的结果(数据库用的是ACCESS)
dataGridContact.DataSource = tblContectQuery;但显示在DataGridView里的是条空数据,迷茫了。
小弟初学C#,数据库操作这块没什么思路,还望各位大侠们LEND ME A HAND 一下下
改为模糊查询吧
string strQueryContent = "Select * from table where " + comboQueryType .Text.Trim() + " like " +"'%" + txtQueryContent.Text.Trim() + "%'";
dataGridContact.DataMember = tblContectQuery.TableName;
dataGridContact.DataBind();即可
//封装了各种查询操作
class AccessDB
{
//构造函数……
//strQuery为SQL语句
public DataTable QueryReturnTbl(string strQuery)
{
Adapter = new OleDbDataAdapter();
tblQuery = new DataTable();
/*Adapter获得查询结果*/
Adapter.SelectCommand=new OleDbCommand (strQuery, conn);/*conn:构造函数中初始化的ACCESS连接变量*/
/*填到表中*/
Adapter.Fill(tblQuery);
return tblQuery;
}
//……
}private void btnOK_Click(object sender, EventArgs e)
{
//省略保护 string strQueryContent = "Select * from table where " + comboQueryType.Text.Trim() + " like " + "'%" + txtQueryContent.Text.Trim() + "%'";
AccessDB ContentQuery = new AccessDB(conn);
DataTable tblQuery = ContentQuery.QueryReturnTbl(strQueryContent);
dataGridContact.DataSource = tblQuery;
dataGridContact.DataMember = tblQuery.TableName;
//……
}我是胡乱写的,这样写可以正确输出结果,不过我很想知道“按套路出牌”,从SQL语句获取某个控件TEXT属性开始,到最后在DATAGRIDVIEW输出,用具体的语言实现起来,应该是个怎样的顺序?
ds= //这里梆定你从数据库里返回的DS
//下面一句话就可以搞定whichDataGridView.DataSource = ds.Tables[0].DefaultView;