动态 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)时,它会给出以下异常:运算符 '=' 与操作数类型"十进制"和"字符串"不兼容。我怎样才能克服这个问题?
您使用参数化查询并作为参数字符串值传递,因此此参数具有字符串类型,并且操作数类型出错。
对于解决仅传递十进制值,例如
dgvLoadTable.DataSource = EntityName
.TableName
.Where(columnName + " = @0", int.Parse(searchValue) )
.ToList();