VB.NET和IBMi SQL dr.hasrows没有显示行(我知道存在)

时间:2013-03-26 18:24:08

标签: sql vb.net

我遇到了一个问题,我正在使用dr.hasrows If语句,它返回为false(当我100%肯定时,它是真的)。 我在VB和(IBM)SQL方面都很陌生,但过去我的命令工作正常。

Private Sub btnAdd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAdd.Click
    Dim SQL As String = "Select * from testlib.hrcontra where @HRAART=HRAART and @HRASEC=HRASEC and @HRAPAR=HRAPAR and @HRASEQ=HRASEQ and @HRARED=HRARED"
    Using cmd As New iDB2Command(SQL, CN)
        cmd.DeriveParameters()
        cmd.Parameters("@HRAART").Value = SCRHRAART
        cmd.Parameters("@HRASEC").Value = SCRHRASEC
        cmd.Parameters("@HRAPAR").Value = SCRHRAPAR
        cmd.Parameters("@HRASEQ").Value = SCRHRASEQ
        'cmd.Parameters("@HRARED").Value = SCRHRARED
        Try
            Using dr As iDB2DataReader = cmd.ExecuteReader
                dr.Read()
                If dr.HasRows = True Then
                    MsgBox("Table already exists!")
                    Exit Sub
                End If
            End Using
        Catch ex As iDB2Exception
            Form1.HandleError("An error occurred on cmd.ExecuteReader()", ex)
            Exit Sub
        End Try
    End Using

我是否需要确定使用所有字段(甚至是非密钥)?或者,我可以在这种情况下使用4个关键字段(这是目标)。我已经尝试将SQL和VB.net角度都用于解决方案并且无处可去。

1 个答案:

答案 0 :(得分:0)

HOLY CRAP,你让我重新检查SQL并意识到我正在比较我的SQL中的HRARED。我从SQL命令中删除它,现在它可以工作了!

谢谢,史蒂夫!

解决方案:仔细检查以确保您的SQL和VB匹配,小孩!