Das ist mein Code:
// 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();
Dies funktioniert nun einwandfrei, wenn searchValue eine Zeichenfolge (z. B. ABC) ist. Wenn es sich jedoch um einen numerischen Wert (z. B. 30) handelt, gibt es die folgende Ausnahme: Operator '=' nicht kompatibel mit den Operandentypen 'Decimal' und 'String. Wie kann ich dieses Problem lösen?
Sie verwenden eine parametrisierte Abfrage und übergeben sie als Parameterzeichenfolgenwert. Daher hat dieser Parameter eine Typzeichenfolge und es wird ein Fehler mit Operandentypen angezeigt.
zum Lösen nur Dezimalwert übergeben, wie
dgvLoadTable.DataSource = EntityName
.TableName
.Where(columnName + " = @0", int.Parse(searchValue) )
.ToList();