动态linq查询不使用数值

时间:2014-12-09 13:32:05

标签: c# winforms dynamic-linq

这是我的代码:

// 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)时,它会给出以下异常:运算符' ='与操作数类型不兼容'十进制'和'字符串。我怎样才能克服这个问题?

1 个答案:

答案 0 :(得分:0)

您使用参数化查询并传递为参数字符串值,因此此参数具有类型字符串,您将获得操作数类型的错误。

用于求解只传递十进制值,如

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