Linq可选字符串

时间:2014-03-13 18:44:51

标签: vb.net linq-to-entities ado

SQL IN STOR:

select * from Car_Company where (@id is null or ID=@id)

下一行(In Linq)对应的代码是什么

From A IN DB.Company Where (IIF(String.IsNullOrEmpty(TextBox1.Text),a.cNAME=TextBox1.Text)).ToList

2 个答案:

答案 0 :(得分:1)

我建议您将字符串评估从LINQ语句中拉出来,然后使用查询中的评估值对其进行一次评估。此外,如果该值应该是一个数字,但是您无法保证用户是否提供了数字,则需要先测试它以确保您有一个数字以避免出现问题。您提供的LINQ查询并没有多大意义,因为where子句返回的字符串不是true / false结果。您需要将值与数据行中的某些内容进行比较。我想你想要的东西:

Dim Id As Integer
If Integer.TryParse(TextBox1.Text, Id) Then
   Dim Query = From A IN DB.Company Where A.Id = Id
End If

答案 1 :(得分:0)

它完全不清楚......试试这个......

(From A IN DB.Company Where IF(Not String.IsNullOrEmpty(TextBox1.Text), 
                               A.cNAME=TextBox1.Text, 
                               "Something else")).ToList