2017-01-27 1 views
1


Я разрабатываю проект 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 используется в качестве первичного ключа в 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

Вы можете достичь этого в одной команде SQL, как below.You следует использовать параметры для защиты от 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() 

Это должно сработать для вас идеально.

Смежные вопросы