我不确定如何解决这个问题。
我有三个表,bookcollection
,books
和users
。
bookcollection : bookc_id, bookc_bookid, bookc_bookuser
books : bookid, title, author, year
users : userid, username, password
bookid
是bookc_bookid
userid
是bookc_bookuser
我有一个C#Winforms应用程序,我正在尝试插入一个带有文本框的新书。但是,我撞墙了。我可以在books
表中插入一本新书。但是,我还需要能够将userid
和bookid
插入到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;
任何人都可以帮我解决这个问题吗?我是否需要创建存储过程,如果是这样,我该怎么做?提前致谢。
答案 0 :(得分:0)
尝试在书籍上使用插入触发器。使用触发器,当您在书籍上插入数据时,它会自动将数据添加到具有给定参数的其他表格中。
答案 1 :(得分:0)
然后存储过程将是更好的解决方案,将参数传递给数据层。试试这个:
create proc sp_AddToBookCollection
(
@bookid int,
@userid int
)
as
begin
insert into bookcollection(bookc_bookid, bookc_bookuser)
values (@bookid,@userid)
end
在使用此过程时,您应该将userid值传递给查询。