从单个表中检索id并将其插入另一个表中

时间:2017-01-27 12:20:05

标签: vb.net


我正在开发一个vb项目,我对这些问题感到困惑。

cmd1.CommandText = "select party_id from tbl_party_data where ppan=lblpan.Text"
cmd.CommandText = "insert into tbl_party_record (party_id, ward) values ('" & "value of cmd1.comandtext" & "','" & txtward.Text & "')"

我已在tbl_party_data表中成功插入数据,现在我想使用外键将数据插入tbl_party_record表。
但我不知道如何编写这些数据vb.net中的查询。
tbl_party_data是主键表,tbl_party_record是外键表。
party_id用作第一表中的主键并作为第二张表中的外键。
那么请你帮帮我吗?

2 个答案:

答案 0 :(得分:0)

您可以使用 ExecuteScalar 返回密钥的值:

Dim partyId As Integer
cmd1.CommandText = "select party_id from tbl_party_data where ppan=lblpan.Text"
partyId = cmd1.ExecuteScalar()
cmd.CommandText = "insert into tbl_party_record (party_id, ward) values ('" & partyId & "','" & txtward.Text & "')"

答案 1 :(得分:0)

您可以在单个sql命令中实现此功能,如下所示。您应该使用参数来保护sql注入:

   Dim connection As New SqlConnection("Data Source=TEst//TEst;Initial Catalog=cMind_ProgramGuide;Persist Security Info=False;")
   Dim strsql As String = "Insert into tbl_party_record (party_id, ward) select party_id ,@ward from tbl_party_data where ppan=@ppan"
   Dim Command As New SqlCommand(strsql, connection)
   Command.Parameters.Add("@ppan", SqlDbType.NVarChar).Value = lblpan.Text
   Command.Parameters.Add("@ward", SqlDbType.NVarChar).Value = txtward.Text
   connection.Open()
   Command.ExecuteNonQuery()
   connection.Close()

这应该对你有用。