为VB添加适当的Select参数

时间:2014-01-28 02:40:34

标签: sql .net vb.net select

我正在使用这一行:

For Each dtrow In FbuildingSettings.camButtonDtable.Select("Floor ='3'")

Floor = 3选择所有项目 如何在状态中添加另一个参数..

.Select(Building = Mall and Floor = 3)

它会找到所有建筑物Mall的数据,然后从三楼获取所有数据 我试过像.Select("Floor ='3' And Building ="'"Mall"'"")这样的东西 - 但似乎我做错了。我在sql中并不是很好 另外,我打算为Mall3使用变量。如果你会那么善良,那就这样做吧谢谢:)

更新:我尝试了valverij的答案,结果是:( 虽然Floor=3代码仍在运行enter image description here

1 个答案:

答案 0 :(得分:1)

看起来您的多条件Select中的引号太多了。根据{{​​3}},您应该能够做到这样的事情:

.Select("Floor ='3' AND Building ='Mall'")

我不确定那里的大写是否很重要,但你可能会在AND全部上限的时候制作大写字母。

您也可以使用this questionAsEnumerable

对LINQ执行此操作
For Each dtrow In FbuildingSettings.camButtonDtable.AsEnumerable.Where(Function(dr) dr("Floor") = "3" AndAlso dr("Building") = "Mal

更新:根据您问题的更新,看起来nBtn.Name期待一种类型,并且您的语句隐式尝试将其设置为其他类型。如果在文件顶部设置Option Strict On,VB将强制您在设置/使用对象时在必要时进行显式转换。如果你不想这样做,那很好,但可能会做到这样的事情:

nBtn.Name = dtrow("ButtonText").ToString & dtrow("ID").ToString

或者这个:

nBtn.Name = String.Format("{0}{1}", dtrow("ButtonText").ToString, dtrow("ID").ToString)

另外,请检查以确保dtrow("ButtonText")dtrow("ID")实际包含一个值(即,它们不是DBNull.Value)如果问题 ,然后您可以使用临时变量和If语句来相应地设置它们:

Dim buttonText As String = String.Empty
Dim id As String = String.Empty

If dtrow("ButtonText") IsNot DBNull.Value Then
    nBtn.Name &= dtrow("ButtonText").ToString
End If

If dtrow("ID") IsNot DBNull.Value Then
    nBtn.Name &= dtrow("ID").ToString
End If

但是请注意,ToString会使确定 VB获取String中值的DataRow表示。否则,我认为它只是尝试根据创建DataRow时添加的内容来使用类型。