0

パラメトリック挿入クエリを静的に使用して子テーブルの外部キー値を入力しようとしていますが、動的に実行しようとするとうまくいきません

私の親テーブルはCustomer custId(pk),CustName,contact です そこのフィールドです

子テーブルは_order orderId(pk)、item、qauntity、cust_Id(fk) は filelds です。

C#に挿入するための私のコードは次のとおりです。

SqlCommand scmd = new SqlCommand("insert into Customer (custname,contact)values(@custname,@contact)", conn);
                scmd.Parameters.AddWithValue("@custname", cusname.Text);
                scmd.Parameters.AddWithValue("@contact", contact.Text);
                scmd.ExecuteNonQuery();

  SqlCommand scmd1 = new SqlCommand("insert into  _order (item,qauntity,cust_Id) select @item,@qauntity,custId from Customer where custId= @custId", conn);
                scmd1.Parameters.AddWithValue("@item", item.Text);
                scmd1.Parameters.AddWithValue("@qauntity", qauntity.Text);
                scmd1.ExecuteNonQuery();

条件が機能する2番目のクエリでハードコード値を指定すると、動的に実行する方法がわかりました。誰もが私の問題を理解していると思います。

4

1 に答える 1

1

それを試してみてください:

SqlCommand scmd = new SqlCommand("insert into Customer (custname,contact)values(@custname,@contact); SELECT SCOPE_IDENTITY()", conn);
scmd.Parameters.AddWithValue("@custname", cusname.Text);
scmd.Parameters.AddWithValue("@contact", contact.Text);
int custId = Convert.ToInt32(scmd.ExecuteScalar());

SqlCommand scmd1 = new SqlCommand("insert into  _order (item,qauntity,cust_Id) VALUES(@item,@qauntity,@custId)", conn);
scmd1.Parameters.AddWithValue("@item", item.Text);
scmd1.Parameters.AddWithValue("@qauntity", qauntity.Text);
scmd1.Parameters.AddWithValue("@custId", custId);
scmd1.ExecuteNonQuery();
于 2012-07-13T07:33:49.813 に答える