插入后mysql中的重复记录
快给你一个。 我正在使用以下代码将一条记录插入mysql数据库中的两个表中插入后mysql中的重复记录,mysql,vb.net,vb.net-2010,Mysql,Vb.net,Vb.net 2010,快给你一个。 我正在使用以下代码将一条记录插入mysql数据库中的两个表中 SQLConnection.ConnectionString = connectionstring Try If SQLConnection.State = ConnectionState.Closed Then SQLConnection.Open() Dim SQLStatement As String = "INSERT INTO hosts(
SQLConnection.ConnectionString = connectionstring
Try
If SQLConnection.State = ConnectionState.Closed Then
SQLConnection.Open()
Dim SQLStatement As String = "INSERT INTO hosts(name, description, host, type, port, hostname) VALUES('" & txtname.Text & "','" & txtdescription.Text & "','" & txthost.Text & "','" & cmbtype.Text & "','" & txtport.Text & "','" & Pinger.resolvedstatus.Text & "'); SELECT LAST_INSERT_ID()"
SaveData(SQLStatement)
SQLConnection.Open()
SQLStatement = "INSERT INTO credentials(hosts_linked_id, username, password, type) VALUES('" & hosts_linked_id & "','" & txtusername.Text & "','" & txtpwd.Text & "','" & cmbtype.Text & "')"
SaveData(SQLStatement)
Savedata()
位调用此函数
Public Sub SaveData(ByRef SQLStatement As String)
Dim cmd As MySqlCommand = New MySqlCommand
cmd.CommandText = SQLStatement
cmd.CommandType = CommandType.Text
cmd.Connection = SQLConnection
cmd.ExecuteNonQuery()
hosts_linked_id = CInt(cmd.ExecuteScalar())
SQLConnection.Close()
MsgBox("Host has been added - Host ID " & hosts_linked_id & "")
txtname.Text = ""
txtdescription.Text = ""
txthost.Text = ""
cmbtype.Text = ""
txtport.Text = ""
End Sub
代码的工作原理是将必要的记录插入到“主机”和“凭据”表中,但在每个表中,记录插入两次
显然,我不希望数据库中有重复的记录,所以有人能帮我阻止它执行两次插入吗
提前谢谢 你叫它两次:
cmd.ExecuteNonQuery()
hosts_linked_id = CInt(cmd.ExecuteScalar())
一次作为ExecuteNonQuery
,第二次作为ExecuteScalar()
您需要删除其中一个。看看代码,我想您可能需要在SaveData
方法中引入一个参数来说明要使用哪个方法。您可以调用它两次:
cmd.ExecuteNonQuery()
hosts_linked_id = CInt(cmd.ExecuteScalar())
cmd.ExecuteNonQuery()
hosts_linked_id = CInt(cmd.ExecuteScalar())
一次作为ExecuteNonQuery
,第二次作为ExecuteScalar()
您需要删除其中一个。看看代码,我想您可能需要在SaveData
方法中引入一个参数来说明使用哪个方法
cmd.ExecuteNonQuery()
hosts_linked_id = CInt(cmd.ExecuteScalar())
删除cmd.ExecuteNonQuery()
以避免插入两次
删除
cmd.ExecuteNonQuery()
以避免插入两次太棒了,谢谢Szymon!我已经将savedata函数复制到一个单独的函数中,用于保存凭据并分别调用每个凭据。太棒了,谢谢Szymon!我已经将savedata函数复制到一个单独的函数中,用于保存凭据并分别调用每个凭据。