1

部屋予約サービスである学校プロジェクトを構築しています。予約を保存する方法を理解する必要があるプログラミングの部分に到達しました。私は VB を使用してデータベースからプルする方法を知っており、データベースから予約情報をプルしようとすると、そのようにレイアウトしました。

    strBookingQuery = "SELECT * FROM bookings WHERE Date = '" & InputBookingDate & "'"
    Dim Cmd As New MySqlCommand(strBookingQuery, Newconnection)
    Newconnection.ConnectionString = strServerString
    Newconnection.Open()
    reader = Cmd.ExecuteReader()
    reader.Read()

    StartPeriod = reader.GetInt16(1)
    Length = reader.GetInt16(2)
    UserID = reader.GetInt16(3)
    RoomID = reader.GetInt16(4)
    Newconnection.Close()

しかし、StartPeriod = reader.GetInt16(1) に到達すると、Read() を呼び出す前にフィールドにアクセスする試みが無効であると表示されます。これは、MySQL が日付を別の方法で保存するためですか? または、他の何か?どんな助けでも大歓迎です:)

4

1 に答える 1

1

GetInt16が をどのように読み取ると思いますdateか?

Reader.GetInt16() は、指定された列の値を 16 ビットの符号付き整数として取得します。変換は実行されません。したがって、取得されたデータは、既に Int16 であるか、Int16 に強制可能である必要があります。

OPがstartPeriodに問題がないことを確認したことを考えると、考えられる問題は次のとおりです。

read() を呼び出す前にフィールドにアクセスしようとする試みは無効です

于 2013-01-29T14:19:08.247 に答える