두 개의 테이블을 사용하여 데이터를 삽입하는 형식이 있습니다. ,두 개의 테이블에 여러 데이터를 삽입하고 마지막 삽입 된 ID를 다른 테이블에 삽입해야합니다.
scholarshipDetail , scholarshipCourse.
scholarshipDetail
테이블 scholarshipName 연도scholarshipCourse
테이블 scholarshipID을 가지고 있습니다 참여scholarship name, course, year
두 테이블은 다음과 같습니다 형태로
일부 열은 같은 될 것 물론
scholarshipDetail :
schid schName year
-----------------------------
1 star 2015
2 moon 2016
scholarshipCourse :
schID course
------------------
1 maths
1 english
2 maths
새 사용자가 ID가 3 그것은 두 개의 테이블에 삽입하는 것을 의미합니다 새로운 장학금을 추가하고 싶어한다고 가정. 어떻게 그럴 수 있니?
NEW ERROR (ALR를 삽입하려면 관리) : 이
public DataTable test(string name, string course)
{
string insertsql = "INSERT INTO Table1(schName) OUTPUT INSERTED.addID values (@schName)";
SqlCommand cmd = new SqlCommand(insertsql,conn);
cmd.Parameters.AddWithValue("@schName", name);
conn.Open();
int i = cmd.ExecuteNonQuery();
var table1Id = (int)cmd.ExecuteScalar();
string insertsql1 = "INSERT INTO Table2(ScholarshipID, DiplomaCourse) VALUES (@id, @course)";
SqlCommand cmd2 = new SqlCommand(insertsql1, conn);
cmd2.Parameters.AddWithValue("@id", table1Id);
cmd2.Parameters.AddWithValue("@course", course);
SqlDataAdapter da = new SqlDataAdapter();
da.SelectCommand = cmd;
da.SelectCommand = cmd2;
DataTable dt = new DataTable();
da.Fill(dt);
return dt;
}
편집
내 테이블의 출력은 표
schID schname
-------------------
1 jj
2 jj
표 2
TableID schID Course
------------------------------
1 2 Maths
입니다210 데이터가 Table1에 두 번 삽입됩니다. 왜 이렇게이다?
이제 문제는, 사용자가 장학금에 적용되는 과정 선택할 수 있도록 체크 박스가있을 것입니다 :
편집을 (SOLVED).
사용자가 모두 체크 박스를 클릭하면 마지막 체크 박스 만 데이터베이스에 삽입됩니다. 당신은 두 번 명령을 실행하는
protected void Button1_Click(object sender, EventArgs e)
{
// addScholarship[] test = new addScholarship[1];
string course = "";
string Name = schName.Text;
if (DIT.Checked)
{
course = "DIT";
}
if (DFI.Checked)
{
course = "DFI";
}
addScholarship[] insertName = new addScholarship[1];
addScholarship insertedName = new addScholarship(Name,course);
scholarshipBLL obj = new scholarshipBLL();
DataTable dt = obj.test(Name, course);
}
* 새 사용자는 ID가 3과 두 개의 테이블 *에 삽입하는 것을 의미합니다 새로운 장학금을 추가하고 싶어한다고 가정 - 당신의'scholarshipDetail' 테이블'auto_increment' 속성이 무엇입니까? 그렇다면 삽입은 새로운 행 입력의 ID에 항상'+ 1'을줍니다. 그런 식으로, 당신은 [mysqli_insert_id] (https://dev.mysql.com/doc/apis-php/en/apis-php-mysqli.insert-id.html), [예제] (http://www.w3schools.com/php/php_mysql_insert_lastid.asp) ..하지만 두 사람이 실제로 시스템을 사용한다면 - 그 대답은 데이터베이스 트랜잭션에 속해 있습니다. –
예 자동 증가가 있습니다. 그래서 schID는 새로운 장학금이 추가 될 때마다 자동으로 증가합니다. 질문은 내 신분증을 장학금 안내서에 삽입하는 방법입니다. 지금은 두 테이블에 삽입 할 수 있습니다. 하지만 ScholarshipCourse의 schID는 NULL입니다. – skylight
그리고 asp.net fyi를 사용하고 있습니다. – skylight