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

How do I insert Windows form data in 2 different tables?

我创建了 2 table 个 student and course

中的字段

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

中的字段

当然 table 是 (course_id, student_id,......)。 Windows表格填写student and coursetable同理
我能够将学生数据插入到学生 table 中。

现在,我的问题是如何在课程 table 中填写 student_id,因为我不知道 student_id)?
到目前为止,我可以分别插入学生和课程数据,将课程 table 中的 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 中填写什么。第一个 table 中的 student_id 是一个自动递增字段。

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

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

如果 INSERT 由于密钥冲突而失败 SQL- 服务器返回一个空结果集。

如果您使用 SCOPE_IDENTITY(),则可能是您在插入失败时从较早插入的学生那里获取了 ID。所以我建议使用 OUTPUT