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