2017-01-27 21 views
1


私はvbプロジェクトを開発しています。単一テーブルからIDを取得して別のテーブルに挿入します

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は、1番目のテーブルのプライマリキーとして使用され、2番目のテーブルの外部キーとして使用されます。
あなたは私を助けてくれますか?

答えて

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 & "')" 
+0

私の解決策を提供するすべての人にthnx。あなたのソリューションは私のために働く... @ Alexandre Nascimento – Umesh

+0

可能な限り解決された感謝マーク –

0

below.Youは、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 [email protected]" 
    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() 

これは完全に機能するはずです。

関連する問題