如何根据适用于多列的搜索值显示行

时间:2009-09-04 11:43:04

标签: sql datagridview

全部, 我有一个问题,我必须根据通过文本框明确给出的键值在数据网格视图中搜索行。此键值应该是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);


选择之前的数据网格视图

1 个答案:

答案 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 + "%'";
    }