我正在开发一个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
用作第一表中的主键并作为第二张表中的外键。
那么请你帮帮我吗?
答案 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()
这应该对你有用。