【问题标题】:Multiply Insert to MySQL with vb.net使用 vb.net 将插入乘以 MySQL
【发布时间】:2012-06-06 11:02:01
【问题描述】:

我在输入乘法输入时遇到问题

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”放置一个输入 我试着稍微调整一下

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” 和“parameterB_Answer.Value = TextBox2.Text”作为答案

但我得到的结果是表格只填充了来自 Label2.text 和 Textbox2.text 的数据。

我不知道出了什么问题.. 如果你们有任何想法可以帮助我解决这个问题。 欢迎回答:)

【问题讨论】:

    标签: mysql vb.net visual-studio-2010


    【解决方案1】:

    这一行是错误的

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

    正确的是

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

    此查询是 INSERT,因此您需要调用 ExecuteNonQuery 而不是 ExecuteReader,后者旨在使用 MySqlDataReader 进行数据检索

    当然,您在数据库中只写入一条记录而不是两条,您只是在将命令发送到数据库之前更改参数的值,只会写入最后一个值。

    【讨论】:

      猜你喜欢
      • 2014-10-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-28
      • 1970-01-01
      • 2023-03-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多