2017-02-08 15 views
0

私の 'person_address'には私の人のテーブルIDとアドレステーブルIDから2つのfkが来ています。私のデータベースの私のPKと同じ値にこれらを更新するために。私は次のようなものを実行したい:CでのPKからFKへのデータの挿入

command.Connection = conn; 
command.CommandText = "insert into mydb.person values(null,'" + firstName.ToString() + "','" + lastName + "','" + telephoneV + "','" + emailAddress + "')"; 
command.ExecuteNonQuery(); 


command.CommandText = "insert into mydb.address values(null,'" + addressV.ToString() + "','" + address2V + "','" + countyV + "','" + postcodeV + "','" + countryV + "')"; 
command.ExecuteNonQuery(); //above sql statements insert variables into the database 

command.CommandText = "insert into mydb.person_address values(null, null);"; 
command.ExecuteNonQuery(); 

これは、「結合テーブル」を使用する正しい方法ですか?

EDIT:

はこれをしようとしてaddress_addressIDはNULLにすることはできませんエラーを返しました。

答えて

0

いいえ正しい方法ではありません。 PKにはnullを挿入しないでください。データベースでPKを自動インクリメントにします。

次に、両方のクエリの最後に挿入されたIDを次のように取得します。

long id1 = cmd1.LastInsertedId; 
long id2 = cmd2.LastInsertedId; 

そして、常に `command.Parameters.Addを()`を使用することを検討してください

command.CommandText = "insert into mydb.person_address values("+id1+","+ id2+");"; 
command.ExecuteNonQuery(); 
+1

以下のようにIDSの両方を挿入します。 –

関連する問題