在DataGridView中自动搜索

时间:2014-03-24 23:47:29

标签: c# datagridview

我希望在TextBox中进行自动搜索。

当我搜索字符串时,此代码正在运行,但是当我搜索整数时,这是错误:

  

无法在System.Int32和System.String

上执行'Like'操作

我希望你能提供帮助,因为我现在需要它。

private void textBox1_TextChanged(object sender, EventArgs e)
{
    DataView DV = new DataView(dataTable);
    DV.RowFilter = string.Format("OrderNo LIKE '%{0}%'",textBox1.Text);
    dataGridView1.DataSource = DV;
}

1 个答案:

答案 0 :(得分:0)

您无法使用LIKE运算符来比较数字。我假设您要查找匹配的订单ID:

DV.RowFilter = string.Format("OrderNo = {0}", textBox1.Text);

您可能还希望先使用int.TryParse()来测试TextBox中的值。

private void textBox1_TextChanged(object sender, EventArgs e)
{
    int orderId;
    if (!int.TryParse(textBox1.Text, out orderId))
        return;  // not a valid number

    DataView DV = new DataView(dataTable);
    DV.RowFilter = string.Format("OrderNo = {0}", orderId);
    dataGridView1.DataSource = DV;
}

如果您真的想将订单ID与字符串进行比较,则必须先将其转换为:

DV.RowFilter
  = string.Format("CONVERT(column3, System.String) LIKE '%{0}%'", textBox1.Text);