0

dr.hasrows If ステートメントを使用しているときに問題が発生し、それが false として返されます (100% ポジティブな場合は true です)。私は 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 に答える