我遇到了一个问题,我正在使用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角度都用于解决方案并且无处可去。
答案 0 :(得分:0)
HOLY CRAP,你让我重新检查SQL并意识到我正在比较我的SQL中的HRARED。我从SQL命令中删除它,现在它可以工作了!
谢谢,史蒂夫!解决方案:仔细检查以确保您的SQL和VB匹配,小孩!