Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/257.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# like运算符的结果为零_C#_Asp.net Mvc_Linq - Fatal编程技术网

C# like运算符的结果为零

C# like运算符的结果为零,c#,asp.net-mvc,linq,C#,Asp.net Mvc,Linq,我在ASP MVC中创建了一个actionresult,它应该显示与我的Linq查询匹配的记录。在我添加以下内容之前,它一直正常工作: records.State == '0' && 此查询(在t-sql中)在sql management studio中返回正确的结果,但不使用Linq: public ActionResult Index(string q) { viewModel.Records = from records in

我在
ASP MVC
中创建了一个actionresult,它应该显示与我的
Linq
查询匹配的记录。在我添加以下内容之前,它一直正常工作:

records.State == '0' &&
此查询(在t-sql中)在sql management studio中返回正确的结果,但不使用Linq:

   public ActionResult Index(string q)
    { 
               viewModel.Records = from records in db.records
                                   where records.State == '0' &&
                                   records.Title.Contains(q)
                                   || records.Title.Contains(q)
                                   ||records.Project.Contains(q)
                                   || records.Owner.Contains(q)
                                   || records.Number.Contains(q)
                                   select events;
    }
请在下面试试

public ActionResult Index(string q)
{ 
           viewModel.Records = from records in db.records
                               where records.State == 0 &&
                              ( records.Title.Contains(q)
                               || records.Title.Contains(q)
                               ||records.Project.Contains(q)
                               || records.Owner.Contains(q)
                               || records.Number.Contains(q))
                               select events;
}
请在下面试试

public ActionResult Index(string q)
{ 
           viewModel.Records = from records in db.records
                               where records.State == 0 &&
                              ( records.Title.Contains(q)
                               || records.Title.Contains(q)
                               ||records.Project.Contains(q)
                               || records.Owner.Contains(q)
                               || records.Number.Contains(q))
                               select events;
}

如果
State
属性的类型是
char
类型,因为
'0'
char

如果
状态
的类型为
int
/
tinyint
(字节),则应执行此操作

where records.State == 0 
&& records.Title.Contains(q)

如果
State
属性的类型是
char
类型,因为
'0'
char

如果
状态
的类型为
int
/
tinyint
(字节),则应执行此操作

where records.State == 0 
&& records.Title.Contains(q)
您的调用看起来是正确的(虽然您有两次
Title.Contains()
),但您提到您的
State
属性是一个
tinyint
,因此您希望将其作为一个字符串进行比较(而不是以前的字符串):

您的调用看起来是正确的(虽然您有两次
Title.Contains()
),但您提到您的
State
属性是一个
tinyint
,因此您希望将其作为一个字符串进行比较(而不是以前的字符串):


小心你的逻辑。如果你想要的是

records.State == '0' && [whatever previous logic you have]
您应该将之前的所有逻辑放在括号中:

viewModel.Records = from records in db.records
                   where records.State == '0' &&
                   (records.Title.Contains(q)
                   || records.Project.Contains(q)
                   || records.Owner.Contains(q)
                   || records.Number.Contains(q))
                   select events;
另外,请注意,您有重复的条件
records.Title.Contains(q)
,我会在解决方案中删除它

此外,如果您的
记录.State
为数字类型(如
int
,而不是
char/string
),则不应使用撇号,而应直接使用数字:

viewModel.Records = from records in db.records
                   where records.State == 0 &&
                   (records.Title.Contains(q)
                   || records.Project.Contains(q)
                   || records.Owner.Contains(q)
                   || records.Number.Contains(q))
                   select events;

小心你的逻辑。如果你想要的是

records.State == '0' && [whatever previous logic you have]
您应该将之前的所有逻辑放在括号中:

viewModel.Records = from records in db.records
                   where records.State == '0' &&
                   (records.Title.Contains(q)
                   || records.Project.Contains(q)
                   || records.Owner.Contains(q)
                   || records.Number.Contains(q))
                   select events;
另外,请注意,您有重复的条件
records.Title.Contains(q)
,我会在解决方案中删除它

此外,如果您的
记录.State
为数字类型(如
int
,而不是
char/string
),则不应使用撇号,而应直接使用数字:

viewModel.Records = from records in db.records
                   where records.State == 0 &&
                   (records.Title.Contains(q)
                   || records.Project.Contains(q)
                   || records.Owner.Contains(q)
                   || records.Number.Contains(q))
                   select events;

状态的类型是什么?@Shyju类型是tinyint@CitizenDB那你为什么要把它比作一个字符呢?请尝试
records.State==0
。通过与“0”进行比较,实际上是将其与数值48进行比较。
状态的类型是什么?@Shyju类型是什么tinyint@CitizenDB那你为什么要把它比作一个字符呢?请尝试
records.State==0
。通过与“0”进行比较,实际上是将其与数值48进行比较