LINQ to SQL — Запрашивает точные значения

#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'»