0

我遇到了一个问题,我正在使用 dr.hasrows If 语句,它返回为假(当我 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 角度来解决解决方案,但无处可去。e

4

1 回答 1

0

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

谢谢你,史蒂夫!

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

于 2013-03-27T14:06:38.990 回答