0

乗算入力を入れるのに問題があります

Try
    Dim StrSQL As String = "INSERT INTO boranga" & _
                           "(IdBorangA,Answers)" & _
                           "VALUES (@B_IdA,@B_Answer);"
    Dim myCommand As MySqlCommand = New MySqlCommand(StrSQL, conn.open)
    myCommand.CommandType = CommandType.Text
    Dim parameterB_IdA As MySqlParameter = New MySqlParameter("@B_IdA", MySqlDbType.VarChar, 300)
    parameterB_IdA.Value = Label1.Text

    Dim parameterB_Answer As MySqlParameter = New MySqlParameter("@B_Answer", MySqlDbType.VarChar, 300)
    parameterB_Answer.Value = TextBox1.Text

    With myCommand.Parameters
        .Add(parameterB_IdA)
        .Add(parameterB_Answer)
    End With

    Dim result As MySqlDataReader = myCommand.ExecuteReader(CommandBehavior.CloseConnection)
    MsgBox("Tersimpan", vbYes, "boranga")

Catch SqlEx As MySqlException
    Throw New Exception(SqlEx.Message.ToString())
End Try

この現在のコードは、テーブル「IdBorangA」と「Answer」ごとに1つの入力のみを入力するためのものです。少し調整してみます。

Try
    Dim StrSQL As String = "INSERT INTO boranga" & _
                           "(IdBorangA,Answers)" & _
                           "VALUES (@B_IdA,@B_Answer);"
    Dim myCommand As MySqlCommand = New MySqlCommand(StrSQL, conn.open)
    myCommand.CommandType = CommandType.Text
    Dim parameterB_IdA As MySqlParameter = New MySqlParameter("@B_IdA", MySqlDbType.VarChar, 300)
    parameterB_IdA.Value = Label1.Text
    parameterB_IdA.Value = Label2.Text

    Dim parameterB_Answer As MySqlParameter = New MySqlParameter("@B_Answer", MySqlDbType.VarChar, 300)
    parameterB_Answer.Value = TextBox1.Text
    parameterB_Answer.Value = TextBox2.Text

    With myCommand.Parameters
        .Add(parameterB_IdA)
        .Add(parameterB_Answer)
    End With

    Dim result As MySqlDataReader = myCommand.ExecuteReader(CommandBehavior.CloseConnection)
    MsgBox("Tersimpan", vbYes, "boranga")

Catch SqlEx As MySqlException
    Throw New Exception(SqlEx.Message.ToString())
End Try

IdBorangAの場合はパラメーター"parameterB_IdA.Value= Label1.Text"を追加し、Answerの場合は "parameterB_Answer.Value=TextBox2.Text"を追加します。

しかし、結果として、テーブルはLabel2.textとTextbox2.textからのデータのみで埋められていることがわかります。

何が悪かったのかわかりません。この問題について私を助けてくれるアイデアがあれば。お気軽にお答えください:)

4

1 に答える 1

0

この行は間違っています

Dim myCommand As MySqlCommand = New MySqlCommand(StrSQL, conn.open) 

正しいものは

Dim myCommand As MySqlCommand = New MySqlCommand(StrSQL, conn) 

このクエリはINSERTであるため、MySqlDataReaderを使用したデータ取得を目的としたExecuteReaderではなくExecuteNonQueryを呼び出す必要があります。

もちろん、データベースには2つではなく1つのレコードのみを書き込みます。コマンドをデータベースに送信する前にパラメーターの値を変更するだけで、最後の値のみが書き込まれます。

于 2012-06-06T11:17:55.823 に答える