gpt4 book ai didi

c# - 如何在不使用命令生成器的情况下将行从我的数据集插入到我的数据库中?

转载 作者:搜寻专家 更新时间:2023-10-30 20:58:22 24 4
gpt4 key购买 nike

我有一个包含多个表的数据库,每个表都相互链接。(关系数据库)我想将记录从我的数据集中插入数据库。首先,我尝试使用 OledbCommandBuilder 但是没有用,我发现它不能与关系数据库一起使用。我没有在我的数据集中链接表,它们只在数据库中链接。我有一个名为“提交”的按钮。当我按下该按钮时,我希望 dataset.datatable 中的所有修改都反射(reflect)在相应的数据库表中。我一次只知道如何插入、更新、删除一条记录,但这也是一项漫长的任务,因为首先我必须这样做。

保存按钮中的代码

             DataRow dRow = bookDS.Tables["Book"].NewRow();

dRow[0] = Convert.ToInt64(textBookID.Text);
dRow[1] = textBookName.Text;
dRow[2] = textISBN.Text;

以此类推(共有30列)

              bookDS.Tables["Book"].Rows.Add(dRow);

然后

提交按钮中的代码

con.Open();

                    string sql = "Insert INTO Book Values (@BookId, @BookName, @ISBNNo, @PublicationId, @CategoryId, @Pages,@Price,@Author1,@Author2,@TotalCopies,@IssuedCopies,@AvailableCopies,@SupplierName,@Note)";

OleDbCommand save = new OleDbCommand(sql);

save.Parameters.Add("@BookId", OleDbType.BigInt).Value = Convert.ToInt64(dRow[0]);
save.Parameters.Add("@BookName", OleDbType.BSTR).Value = dRow[1];
save.Parameters.Add("@ISBNNo", OleDbType.BSTR).Value = dRow[2];

等等……

保存.Connection = con; 保存.ExecuteNonQuery();

                    con.Close();

这就是我所能想到的,但它只适用于单行,所以我每次按下保存按钮时都必须按下提交按钮。

谁能帮我解决这个问题???

P.S:我正在使用 MSAccess,也不想使用 TABLEADAPTER(我想用我的代码做所有事情)

最佳答案

http://msdn.microsoft.com/en-us/library/xzb1zw3x.aspx

尝试使用 OleDBDataAdapter 完成这项工作。或者您甚至可以尝试使用 OleDBComamndBuilder(OleDb 的 Access 数据库而不是 Sql):

http://www.daniweb.com/software-development/csharp/threads/380925/how-to-save-a-dataset-into-a-database

关于c# - 如何在不使用命令生成器的情况下将行从我的数据集插入到我的数据库中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13084961/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com