C# 使用Tableadapter插入与复制相同记录的快速方法
我有一个带有一系列字段的datatable,它由tableadapter填充数据。通常,需要插入的记录略有不同(仅id)。我不希望用户再次键入所有内容,所以,有没有一种快速的方法将当前记录插入数据库。请注意,我的所有插入、更新和删除操作都基于我的tableadapterC# 使用Tableadapter插入与复制相同记录的快速方法,c#,ado.net,tableadapter,C#,Ado.net,Tableadapter,我有一个带有一系列字段的datatable,它由tableadapter填充数据。通常,需要插入的记录略有不同(仅id)。我不希望用户再次键入所有内容,所以,有没有一种快速的方法将当前记录插入数据库。请注意,我的所有插入、更新和删除操作都基于我的tableadapter //Get only one last record that has been added when the form load. bookTableAdapter.FillByLastID(bookDataSet.dtBoo
//Get only one last record that has been added when the form load.
bookTableAdapter.FillByLastID(bookDataSet.dtBook);
private void btnNew_Click(object sender, EventArgs e)
{
bookBindingSource.AddNew();
}
private void btnSave_Click(object sender, EventArgs e)
{
this.Validate();
bookBindingSource.EndEdit();
bookTableAdapter.Update(bookDataSet.dtBook);
}
尝试此操作以复制行:
DataRow row = table.Rows[0]; // row you want to copy
DataRow newRow = table.NewRow();
newRow.ItemArray = row.ItemArray.ToArray();
newRow["Id"] = 10; // change Id
table.Rows.Add(newRow);
接受的答案对我来说不起作用,因为TableAdapter查询返回的列比新行多,33。我的表有32列。这是遗留代码和数据库
然而,本文给出了答案:一些代码示例会很好。因为不清楚您是如何进行更新工作的。你发布整个表还是什么?我只是在我的datadapater上更新方法。我一次发布一条记录。什么是GUid.NewGuid();?我收到一条错误消息:无法将“System.Guid”类型的对象强制转换为“System.IConvertable”类型。无法在ID列中存储。在我的示例Id列中,预期的类型是Int32,因为我看到您在那里有int,所以将其更改为一些int。请参阅我的更新