我有一个数据库,每个数据库都链接到另一个表。(关系数据库)我想将记录从数据集插入到数据库中。首先,我尝试使用OLEDBCommandBuilder,但这不起作用,我发现它无法与关系数据库使用。我没有在数据集中链接表中的表,它们仅在数据库中链接。我拥有的是一个名为" commit"的按钮。当我按下该按钮时,我希望数据集中的所有修改。dataTable可以反映在相应的数据库表中。我只知道如何插入,更新,一次删除单个记录,但这也是一项漫长的任务,因为我必须这样做。
保存按钮中的代码
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);
然后
COMIL按钮中的代码
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];
等等...
save.connection = con; save.executenonquery();
con.Close();
这就是我能想到的,但这仅适用于一行,所以我就像每次按"保存"按钮时必须按"提交"按钮。
任何人都可以帮我吗?
P.S:我正在使用MSACCESS,也不想使用TableAdapter(我想用代码做所有事情)
http://msdn.microsoft.com/en-us/library/xzb1zw3x.aspx
尝试使用OLEDBDATAADAPTER进行此工作。或者,您甚至可以尝试使用OLEDBCOMAMNDBUILDER(OLEDB的访问数据库而不是SQL):
http://www.daniweb.com/software-development/csharp/threads/380925/how-to-to-save-aave-a-a-dataset-into-into-a-a-database
string sql = "Insert INTO Book Values (@BookId, @BookName, @ISBNNo, @PublicationId, @CategoryId, @Pages,@Price,@Author1,@Author2,@TotalCopies,@IssuedCopies,@AvailableCopies,@SupplierName,@Note)";
DataRow dRow = bookDS.Tables["Book"].NewRow();
dRow[0] = Convert.ToInt64(textBookID.Text);
dRow[1] = textBookName.Text;
dRow[2] = textISBN.Text;
bookDS.Tables["Book"].Rows.Add(dRow);
//This would help you to commit all the changes at once.
bookDS.AcceptChanges();