テーブルで最大の 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です。
私が見落としている何が起こっているのですか?