0
    Dim sqlCountQuery As String = "SELECT COUNT(*) FROM codes"
    Dim SQLConnection As MySqlConnection = New MySqlConnection
    Dim CountCommand As New MySqlCommand(sqlCountQuery, SQLConnection)
    SQLConnection.ConnectionString = strServerString
    SQLConnection.Open()
    reader = CountCommand.ExecuteReader
    reader.Read()
    CodeCounter = reader.GetInt32(0)
    SQLConnection.Close()



    Dim sqlQuery As String = "SELECT * FROM codes"
    Dim Command As New MySqlCommand(sqlQuery, SQLConnection)
    SQLConnection.Open()
    reader = Command.ExecuteReader()
    reader.Read()

    For b = 0 To CodeCounter - 1
        test = reader.GetInt32(b)
    Next

コードの一番上のビットは、現在データベースに保存されているコードの数を取得しますが、for ループで 2 番目の部分に移動すると、データベースから最初のコードを正しく取得しますが、その後、「あなたが持っている」というエラーが表示されます。無効な列の序数を指定しました。". 私はそれを行ごとに実行してきました。これは、最初のコードを正しく取得することを知っている方法です。

4

1 に答える 1

1

列数と行数を混同しました。CodeCounterは行数ですが、コードの 2 番目の部分では、列からデータを取得しようとしました。reader.GetInt32(int)指定された列からデータを取得します。

非常に悪いで書かれたすべてのコード。の使用方法については、この記事の例を参照してくださいDataReader。SQL Server データ プロバイダー向けの記事ですが、参考になる場合があります。

于 2013-01-31T11:47:30.683 に答える