在一条SQL Server语句中插入两个表

本文关键字:两个 插入 SQL 一条 Server 语句 | 更新日期: 2024-09-24 03:10:18

我不确定如何解决这个问题。

我有三张表,bookcollectionbooksusers

bookcollection : bookc_id, bookc_bookid, bookc_bookuser
books : bookid, title, author, year
users : userid, username, password
  • bookidbookc_bookid的外键
  • useridbookc_bookuser的外键

我有一个C#Winforms应用程序,我正在尝试插入一本带有文本框的新书。然而,我遇到了一堵墙。我可以在books表格中插入一本新书。但是,我还需要能够将useridbookid插入到bookcollection表中,以便将其放入用户的图书收藏中。

这就是我所拥有的。

private void add()
{
    using (SqlConnection connection = new SqlConnection(constr))
    {
        SqlCommand cmd = new SqlCommand("INSERT INTO books (title, author, year) VALUES (@t, @a, @y)");
        cmd.CommandType = CommandType.Text;
        cmd.Connection = connection;
        cmd.Parameters.AddWithValue("@t", title.Text);
        cmd.Parameters.AddWithValue("@a", author.Text);
        cmd.Parameters.AddWithValue("@y", year.Text);
        connection.Open();
        cmd.ExecuteNonQuery();
    }

在主表单上,我有一个字符串,它用类似public string Username; 的用户名传递

有人能帮我吗?我需要创建一个存储过程吗?如果需要,我将如何做到这一点?提前谢谢。

在一条SQL Server语句中插入两个表

尝试在书籍上使用插入触发器。使用触发器,当您在书本上插入数据时,它会自动将数据添加到具有给定参数的其他表中。

然后存储过程将是将参数传递到数据层的更好解决方案。试试这个:

create proc sp_AddToBookCollection
(
@bookid int,
@userid int
)
as
begin
insert into bookcollection(bookc_bookid, bookc_bookuser)
values (@bookid,@userid)
end

使用此过程时,应该将userid值传递给查询。