異なるIDを持つ同じIDをデータベースに挿入したいとします。基本的には、ユーザーがいくつかの基準で新しい奨学金を追加できる形式です。すべてのコースにすべての奨学金が適用されるわけではありません。したがって、新しい奨学金を受けるscholarship
と、コースの資格を扱うscholarshipCourse
という2つのテーブルがあります。異なるIDを持つ同じIDがデータベースに挿入されています
両方のデータを同時に挿入したいとします。
表scholashipCourse
:
scholarship_id course
-------------------------
1 math
1 english
2 english
2 science
表をユーザープレスが提出場所scholarshipcourse
テーブルが新しい奨学金のIDを取得し、例えば
を挿入します一方、scholarship
表中の奨学金IDが自動インクリメントされますscholarship
:
scholarship_id scholarshipName
--------------------------------------
1 moon scholarship
2 star scholarship
3 light scholarship
scholarship_id 3が新しく追加されたscholarsh IP、どのように私はそのIDを取得し、scholarshipcourseテーブルに同時に挿入するのですか?
私は、このselect文を使用することができます
INSERT INTO user (name)
VALUES ('John Smith');
INSERT INTO user_details (id, weight, height)
VALUES (SELECT(id FROM user WHERE name = 'John Smith'), 83, 185);
をどのように私はちょうど追加された最新のIDを取得できますか?
私はのように私のDALに挿入する必要があります:それは成功した二つのテーブルに追加されますが、それは取得しません {
SqlCommand cmd = new SqlCommand();
SqlConnection myConnection = new SqlConnection(strConnectionString);
cmd.Connection = conn;
cmd.CommandText = "INSERT INTO Table1(schName) values (@schName)";
cmd.Parameters.AddWithValue("@schName", name);
conn.Open();
int i = cmd.ExecuteNonQuery();
int id = (int)cmd.ExecuteScalar();
cmd.CommandText = "Select SCOPE_IDENTITY();INSERT INTO Table2(ScholarshipID,DiplomaCourse) values (@id,@course)";
cmd.Parameters.AddWithValue("@id", id);
cmd.Parameters.AddWithValue("@course", course);
SqlDataAdapter da = new SqlDataAdapter();
da.SelectCommand = cmd;
DataTable dt = new DataTable();
da.Fill(dt);
return dt;
}
公共のDataTableテスト(文字列名、文字列コース)最後のIDとテーブルに挿入
はあなたがいないSCOPE_IDENTITYする値です設定することができます 複数の詳細行を挿入したい場合 - あなたは、同時にそれを行うことはできません - - 奨学金の表にそれを挿入し、IDを取得してコーステーブルに挿入します。 – Hogan
新しい奨学金を追加した後、IDを取得してコーステーブルに挿入しますか? – skylight