从年龄大于20的表中搜索名称并在listBox中显示它们

时间:2017-09-07 14:32:55

标签: c#

我的程序有困难。我有一个dataGridView填充了我的访问数据库中的值。我还有一个listBox只是放在dataGridView下。在我的dataGridView我有name_Columns,联系人,年龄,状态等。我遇到的困难是,在列表框中显示20岁以上的人的姓名,所以我不知道该怎么做。我将非常乐意为您提供任何帮助。我已经插入了一张图片和一些我已经完成的代码。 谢谢

 private void button1_Click(object sender, EventArgs e) //View items in the Data Grid 
    {
        con.Open();
        OleDbCommand cmd = new OleDbCommand();
        cmd.Connection = con;
        string query = "select * from DataPay";
        cmd.CommandText = query;

        DataTable dt = new DataTable();
        OleDbDataAdapter adap = new OleDbDataAdapter(cmd);
        adap.Fill(dt);
        dataGridView1.DataSource = dt;
        con.Close();

    }

Click to view image

2 个答案:

答案 0 :(得分:1)

您忘记添加条件WHERE子句,如

string query = "select * from DataPay where Age > 20";

答案 1 :(得分:0)

您可以使用DataView的RowFilter属性。您可以直接在检索到的DataTable上设置此属性,但这也将过滤DataGridView。如果要将两个控件分隔为分隔的内容,则可以使用原始表作为新DataView的数据源创建新的DataView

    ....
    DataTable dt = new DataTable();
    OleDbDataAdapter adap = new OleDbDataAdapter(cmd);
    adap.Fill(dt);
    dataGridView1.DataSource = dt;
    con.Close();
    DataView dv = new DataView(dt, "Age > 20", "Name", DataViewRowState.CurrentRows);
    listBox.DisplayMember = "Name";
    listBox.DataSource = dv;
}