【问题标题】:LINQ to SQL - Querying exact valuesLINQ to SQL - 查询精确值
【发布时间】:2011-05-15 15:29:51
【问题描述】:

我有一个查询将检索大于 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

例如我如何调整查询以查找确切的字符串,例如“测试”

以及准确的值,例如 20.?

【问题讨论】:

  • 你得到的错误到底是什么?

标签: c# .net sql-server windows linq


【解决方案1】:

UnitPrice 是十进制吗?
您不能将数字类型与字符串进行比较。

如果要检查数字类型是否相等,则不需要使用“”引号。

DataClasses1DataContext db = new DataClasses1DataContext(); 
var returnunits15 = from p in db.Products 
        where p.UnitPrice == 20
        select p;

您只需要使用引号进行字符串比较。

【讨论】:

  • 你的意思是p.UnitPrice == 20,不是吗? ;)
  • @Alex Aza 抱歉,这是一个不好的例子。但在这种情况下,例如UnitName,你怎么能搜索字符串呢?
  • @James - 对于字符串比较,您可以使用 p.UnitName == "test"
  • @James:你会输入p.UnitName == "whateverName"
  • @Alex Aza 我之前尝试过这个,但在执行此操作时仍然遇到相同的错误:“运算符'=='不能应用于'十进制类型的操作数?'和'字符串'"
猜你喜欢
  • 2010-12-17
  • 1970-01-01
  • 2010-09-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-14
  • 1970-01-01
相关资源
最近更新 更多