0

テーブルで最大の ID 番号を見つけようとすると、VB.net で奇妙な戻り値が返されます。

これは私のVB.netコードです:

    objConn = New MySqlConnection(product.strConnString)
    objConn.Open()

    strSQL = "SELECT MAX(id) FROM product;"

    Try
        objCmd = New MySqlCommand(strSQL, objConn)
        dtReader = objCmd.ExecuteReader()

        While dtReader.Read()
            nextDBID = dtReader(0)
        End While

        objConn.Close()
        objConn = Nothing
    Catch ex As Exception
        MsgBox("LoadProduct: " & ex.Message)
    End Try

nextDBIDの値を確認すると、 39と表示されます。ただし、データベースに 39 はありません。

その正確なクエリを mySQL GUI で実行すると、次のようになります。

select MAX(id) from fivestar_range.product;

37

私のIDデータフィールドは製品テーブルにあります:

37
10
11
12
7
8
6
5
4
3
2
1
13
14
36
21

私もこのクエリを使用してみました:

SELECT id FROM product ORDER BY ID DESC LIMIT 1;

そして、私はまだVB.netで39になりますが、mySQL GUIではまだ37です。

私が見落としている何が起こっているのですか?

4

1 に答える 1

3

接続文字列を確認してください。2 つの異なるデータベースを見ている可能性があります。

于 2012-08-08T19:41:56.990 に答える