如何在两个不同的表中插入Windows表单数据?

时间:2015-08-10 14:02:03

标签: sql-server vb.net winforms windows-forms-designer

我创建了2个表student and course

中的字段

学生表是(student_id, student_name,.....).

中的字段

课程表为(course_id, student_id,......)。填写student and course表的Windows表单是相同的 我可以将学生数据插入学生表中。

现在,我的问题是如何填写课程表中的student_id,因为我不知道student_id)?
到目前为止,我可以单独插入学生和课程数据,将课程表中的student_id留空。

Dim query As String = "INSERT INTO tbl_student (student_name, student_address, student_gender,student_dob,student_phone)" & _
                "VALUES (" & _
                "'" & name & "'," & _
                "'" & address & "'," & _
                "'" & gender & "'," & _
                "'" & dob & "'," & _
                "'" & phone & "'," & _
                "'" & phone & "' )"
Dim query1 As String = "INSERT INTO tbl_course (student_id, course_name)" & _
                "VALUES (" & _
                "'" & student_id & "'," & _
                "'" & cname & "' )"


我不确定要填写第二个查询的student_id。第一个表中的student_id是一个自动增量字段。

1 个答案:

答案 0 :(得分:1)

在第一个INSERT中,您可以添加OUTPUT-Clause以获取当前INSERT的Student_id,而无需额外请求。您只需要处理输出。

INSERT INTO ....
OUTPUT inserted.student_id
VALUES (...);

如果INSERT因密钥冲突而失败,SQL-Server会返回一个空的结果集。

如果使用SCOPE_IDENTITY(),则可能是因为插入失败而从先前插入的学生获取ID。所以我建议使用OUTPUT