查询在 MySQL 中执行,但在调试时 vb.net 出错



我有一个插入查询,我试图在其中将表1数据复制到表2。现在,当我直接在MySQL中执行时,查询工作正常,但是当我尝试通过 VB.Net 进行调试时"

INSERT INTO newMedicinesOrders (`OrderID`,`medicineName`, `power`, `form`, `fQuantity`, `iQuantity`, `type`, `cost`, `prescriptionLink`, `userID`) SELECT `orderID`, `name`, `power`, `form`, `fQuantity`, `iQuantity`, `type`, `mrp`, `prescriptionLink`, `userID` from myCart WHERE userID = '1'

我收到一条错误消息,指出

"

字段列表"中的未知列"订单 ID"

VB 代码

Try
            Dim str1 As String = "INSERT INTO newMedicinesOrders (`OrderID`,`medicineName`, `power`, `form`, `fQuantity`, `iQuantity`, `type`, `cost`, `prescriptionLink`, `userID`) SELECT `orderID`, `name`, `power`, `form`, `fQuantity`, `iQuantity`, `type`, `mrp`, `prescriptionLink`, `userID` from myCart WHERE userID = '" + userid.Text + "'"
            Dim str2 As MySqlDataReader
            Dim adapter As New MySqlDataAdapter
            Dim command As New MySqlCommand
            command.CommandText = str1
            command.Connection = con
            adapter.SelectCommand = command
            con.Open()
            str2 = command.ExecuteReader
            con.Close()
            Response.Write("<script language='javascript'>alert('Success.');</script>")
        Catch ex As Exception
            Response.Write(ex)
        End Try
我相信

你的错误来自于你正在使用SQLCommand.ExecuteReader()

从这个描述:

ExecuteReader 用于将查询结果作为 DataReader 对象获取。它是只读的只转发记录检索,它使用 select 命令从第一个到最后一个读取表。

ExecuteNonQuery,用于执行不返回任何数据的查询。它用于执行SQL语句,如更新,插入,删除等。ExecuteNonQuery 执行命令并返回受影响的行数。

根据MSDN,这是你执行INSERTUPDATEDELETE语句的方式:

Public Sub CreateCommand(ByVal queryString As String, ByVal connectionString As String)
    Using connection As New SqlConnection(connectionString)
        Dim command As New SqlCommand(queryString, connection)
        command.Connection.Open()
        command.ExecuteNonQuery()
    End Using
End Sub

但是,我没有找到有关使用 ExecuteReader() 执行INSERT命令时会发生什么的信息,但我想这就是发生的事情......

最新更新