确定查询是否在vb.net中返回“no rows”

时间:2013-09-30 07:13:17

标签: sql sql-server vb.net

我使用MS SQL Server作为我的数据库,使用VB.NET作为我的后端。

我想确定我的sql命令文本中的查询是否返回没有行。 我试图让一个不返回任何行的查询,然后将其值赋给一个变为0的文本框。(整数)

现在的问题是,当我在 If条件中测试它时,它不起作用。 代码是这样的:

If (Query that returns no rows) = 0 Then
'condition
Else
'condition
End If

我尝试了一个空字符串,但它仍然不起作用。请帮忙! 如果可能的话,请给出解决问题的简单方法。 提前谢谢!

2 个答案:

答案 0 :(得分:1)

@podiluska是对的。您必须执行该命令。正如我所看到的,您已为Command对象的CommandText属性赋值,该属性是您要执行的查询。要执行该命令,必须打开一个活动连接,然后在命令对象上调用Execute方法。遵循伪代码可能有所帮助:

Public Sub Temp(ByVal connectionString As String)
    Dim queryString As String = _
       " select * from example where id = 999;" 
    Using connection As New SqlConnection(connectionString)
        Dim command As New SqlCommand(queryString, connection)
        connection.Open()
        Dim reader As SqlDataReader = command.ExecuteReader()
        Try 
            If reader.Read() Then
               'If condition
            Else
               'condition with  no results
            End If
        Finally 
            reader.Close()
        End Try 
     End Using 
End Sub

答案 1 :(得分:0)

        Dim RowsReturned As Integer
        Cmd.CommandText = "SELECT * FROM tblExample WHERE PKeyNo =999"
        cmd.CommandType = CommandType.Text


        RowsReturned = cmd.ExecuteScalar()

        If RowsReturned = 0 Then
                'No rows
        Else 
           'Has Rows