#c# #.net #sql-server #windows #linq
#c# #.net #sql-сервер #Windows #linq
Вопрос:
У меня есть запрос, который извлекает число> 15, хотя, когда я пытаюсь указать точное значение, например «== «2»», я получаю ошибки
DataClasses1DataContext db = new DataClasses1DataContext();
var returnunits15 = from p in db.Products
where p.UnitPrice > 15 // If unit price is greater than 15...
select p; // select entries
Например. как я мог бы адаптировать запрос для поиска точной строки, например, «test»
и
и точное значение, например 20.?
Комментарии:
1. какую именно ошибку вы получаете?
Ответ №1:
UnitPrice
является десятичным?
Вы не можете сравнивать числовые типы со строками.
Если вы хотите проверить равенство для числовых типов, вам не нужно использовать кавычки «».
DataClasses1DataContext db = new DataClasses1DataContext();
var returnunits15 = from p in db.Products
where p.UnitPrice == 20
select p;
Вам нужно использовать кавычки только для сравнения строк.
Комментарии:
1. Конечно, вы имели в виду
p.UnitPrice == 20
, нет? 😉2. @Alex Aza извините, это был плохой пример. но в случае, если это было, например, UnitName, как вы могли бы выполнить поиск строки?
3. @James — для сравнения строк вы делаете
p.UnitName == "test"
.4. @James: Ты бы поставил
p.UnitName == "whateverName"
5. @Alex Aza Я пробовал это раньше и все еще получаю ту же ошибку при выполнении этого: «Оператор ‘==’ не может быть применен к операндам типа ‘decimal?’ и ‘string'»