全部, 我有一个问题,我必须根据通过文本框明确给出的键值在数据网格视图中搜索行。此键值应该是datagridview中的任何列。 但不幸的是,它仅适用于一列(在下面的代码列中使用的是b)
string ss;
ss = textBox1.Text;
SqlConnection con = new SqlConnection("data source=localhost;integrated security=true;initial catalog=da");
da = new SqlDataAdapter("select * from me where a='"+ss+"' ", con);
da.Fill(ds, "me");
dt = ds.Tables[0];
dataGridView1.DataSource = dt;
DataView dv = ds.Tables[0].DefaultView;
//其中b是表格中的一列。我需要这个函数来处理多个列 dv.RowFilter =“b ='”+ ss +“'”; ds.Tables.Clear(); ds.Tables.Add(dv.ToTable()); ds.AcceptChanges(); da.Update(DT);
选择之前的数据网格视图
答案 0 :(得分:0)
ss = textBox1.Text;
SqlConnection con = new SqlConnection("data source=localhost;
integrated security=true;initial catalog=da");
da = new SqlDataAdapter("select * from me", con);
da.Fill(ds, "me");
DataView dv = ds.Tables[0].DefaultView;
dataGridView1.DataSource = dv;
dv.RowFilter = "col1='" + ss + "' and col2>=10";
编辑:
考虑以下示例,
DataTable dt = new DataTable();
DataView dv;
private void Form1_Load(object sender, EventArgs e)
{
dt.Columns.Add("No", typeof(int));
dt.Columns.Add("Name");
dt.Rows.Add(10, "abc");
dt.Rows.Add(11, "pqr");
dt.Rows.Add(12, "efg");
dv = dt.DefaultView;
dataGridView1.DataSource = dv;
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
int no;
int.TryParse(textBox1.Text, out no);
dv.RowFilter = "No=" + no + " or Name like '%" + textBox1.Text + "%'";
}