我们可以在同一个按钮操作中同时使用Insert和Update吗?



我有一个表名为sales,另一个名为balance。我想在sales中使用insert命令,在balance table中使用update命令。我能做什么?

     cmd.CommandText = " INSERT INTO SALES VALUES('" & ComboBox1.Text & " ' , " & SILVER & " ," & GOLD & ",'" & ComboBox2.Text & "'," & KILO.Text & ", " & TOUCH.Text & " ," & TOTKILO.Text & "," & TextBox3.Text & "," & TextBox8.Text & "," & KGOLD & "," & KSILVER & "," & TextBox9.Text & " ," & TextBox10.Text & "," & TextBox11.Text & "," & TextBox12.Text & " , " & TextBox13.Text & " )"
     Dim NB As Double
    NB = TextBox11.Text
    ST = ComboBox1.SelectedValue.ToString
    cmd.CommandType = " UPDATE BALANCE SET OBBALANCE = " & " " & NB & " " & " WHERE         CUSTOMERNAME =  " & " '" & ST & "'" & " "
    cmd.Connection = con
    cmd.ExecuteNonQuery()
    con.Close()

显示错误从字符串" UPDATE BALANCE SET OBBALANCE = "到类型" Integer "的转换无效

您可以在INSERT语句的末尾添加一个分号,将它们分成两个单独的语句。但你的错误是,你将你的CommandType设置为字符串,这是一个枚举:CommandType enumeration

CommandType是一个枚举,它告诉CommandText中的值是什么:查询,表名等。

你不能把查询文本放在那里。

相反,您应该执行以下操作之一(从最好到最差):

  1. 把这两个命令放到服务器端的一个存储进程中,然后调用这个存储进程,这样会更好。

  2. INSERT命令后接UPDATE命令

  3. 创建另一个ADO.Command实例,并在同一事务中再次运行。

您可以使用;:

将两者发送到服务器:
cmd.CommandText="insert into ...(...) values(...); update ... set ..."
cmd.Connection=con
cmd.ExecuteNonQuery()

这也是你如何获得所使用的标识值,你会在insert之后附加一个;select @@identity

前面介绍了为什么CommandType是错误的属性,所以我就不说了。

相关内容

  • 没有找到相关文章

最新更新