c# - 无法对 System.Int32 和 System.String 执行 'Like' 操作。 DataGridView 搜索和过滤

标签 c# winforms datagridview int32

我有一个表单,当我从 ComboBox 中选择一个列名称并在文本框中键入时,它会过滤并在 DataGridView 中显示搜索条件。当我搜索“Reference”时,它是一种 int 数据类型,也是身份和主键。我收到错误消息:

"Cannot perform 'Like' operation on System.Int32 and System.String."

我的代码是

DataTable dt;
private void searchForm_Load(object sender, EventArgs e)
{
    SqlCeConnection con = new SqlCeConnection(@"Data Source=|DataDirectory|\LWADataBase.sdf;");
    SqlCeDataAdapter sda = new SqlCeDataAdapter("select * from customersTBL", con);
    dt = new DataTable();
    sda.Fill(dt);
    dataGridView1.DataSource = dt;
    comboSearch.Items.Add("[Reference]");
    comboSearch.Items.Add("[First Name]");
    comboSearch.Items.Add("[Surename]");
    comboSearch.Items.Add("[Address Line 1]");
    comboSearch.Items.Add("[Address Line 2]");
    comboSearch.Items.Add("[County]");
    comboSearch.Items.Add("[Post Code]");
    comboSearch.Items.Add("[Contact Number]");
    comboSearch.Items.Add("[Email Address]");


}


private void searchTxt_TextChanged(object sender, EventArgs e)
{
    if (comboSearch.SelectedItem == null)
    {
        searchTxt.ReadOnly = true;
        MessageBox.Show("Please select a search criteria");
    }



    else
    {
        searchTxt.ReadOnly = false;
        DataView dv = new DataView(dt);
        dv.RowFilter = "" + comboSearch.Text.Trim() + "like '%" + searchTxt.Text.Trim() + "%'";
        dataGridView1.DataSource = dv;

    }
}

最佳答案

在过滤器中将数字转换为字符串:

dv.RowFilter = string.Format("CONVERT({0}, System.String) like '%{1}%'",
                             comboSearch.Text.Trim(), searchTxt.Text.Trim());

关于c# - 无法对 System.Int32 和 System.String 执行 'Like' 操作。 DataGridView 搜索和过滤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22328392/

相关文章:

c# - 如何关闭闪屏?

c# - 在面板 winform 中放置标签

c# - 在 .Net 的 GAC 中安装 Dll

c# - 如何在 C# 控制台应用程序中绘制框、矩形

c# - 在调试期间在 Visual Studio 中自动附加到子进程

c# - 多个项目的MVC、MVP模式及解决方案

c# - 移除开关盒的设计模式

c# - 使用 INSERT 将十进制数从 DataGridView 插入 MySQL

c# - 在 C# 中更新 NHibernate 3.3 中的子级

c# - 条件 DataGridView 到 DataTable 的转换