动态 linq 查询不适用于数值

本文关键字:适用于 不适用 linq 查询 动态 | 更新日期: 2023-09-27 18:33:38

这是我的代码:

// Taken from combobox selection.
string columnName = cboCrudSearchColumn.Text.ToString(); 
// Taken from textbox selection.
string searchValue = txtCrudSearch.Text.ToString(); 
dgvLoadTable.DataSource = EntityName
    .TableName
    .Where(columnName + " = @0", searchValue )
    .ToList();

现在,当 searchValue 是一个字符串(例如:ABC)时,这工作正常,但是当它是一个数值(例如:30)时,它会给出以下异常:运算符 '=' 与操作数类型"十进制"和"字符串"不兼容。我怎样才能克服这个问题?

动态 linq 查询不适用于数值

您使用参数化查询并作为参数字符串值传递,因此此参数具有字符串类型,并且操作数类型出错。

对于解决仅传递十进制值,例如

dgvLoadTable.DataSource = EntityName
    .TableName
    .Where(columnName + " = @0", int.Parse(searchValue) )
    .ToList();