我已经尝试了很多方法让我的数据库更新我添加的行,但没有运气。这就是我所拥有的:
我需要做的是用localDB表填充dgv1,然后查看表中的最后一个发票号,以获取remoteDB中填充dgv2的起点。使用两个数据表中添加的数据,然后我将它们合并到localDB数据集中,调用me.MasterInvoiceTableAdapter.Update(me.MasterInvoiceDataSet.MasterInvoices)
应该将添加的行保存到数据库...
然后我再次填充数据表。它在dgv中看起来很好,但退出表单并再次加载显示没有进行实际更新。 update方法上的返回码也返回0,验证没有行受到影响。代码如下:
Try
If stats2 = False Then
Me.MasterInvoicesTableAdapter.Fill(Me.MasterInvoicesDataSet.MasterInvoices)
Else
Me.MasterInvoicesTableAdapter.GetData()
End If
Dim rowcount As Integer = DataGridView1.RowCount - 1
Dim lookup As String = Trim(DataGridView1.Item(0, rowcount - 1).Value)
MsgBox(lookup)
Me.SorMasterTableAdapter.Fill(Me.InvoicesFDataSet.SorMaster, lookup)
MasterInvoicesDataSet.MasterInvoices.Merge(InvoicesFDataSet.SorMaster, True)
InvoicesFDataSet.SorMaster.Clear()
Catch ex As Exception
MsgBox(ex.Message)
TextBox1.Text = ex.Message
End Try
Try
Me.Validate()
Me.MasterInvoicesBindingSource.EndEdit()
MsgBox(Me.MasterInvoicesTableAdapter.Update(Me.MasterInvoicesDataSet.MasterInvoices))
stats = True
Catch ex As Exception
MsgBox(ex.Message)
End Try
FYI。 stats
变量用于控制刷新按钮的行为。
我已经尝试循环遍历数据集并逐个添加数据行(newrow with row.add,importrow,item.add),我尝试使用linkDB查询来完成所有这些操作曾经(有了这个,我发现数据库中的校对不一样),以及其他一些甚至不值得一提的方法。
有任何建议吗?
答案 0 :(得分:-1)
我通过对merge方法进行一些研究来修复我的问题,并发现rowstate并不总是在额外的行上更改为Added
,这是通过在合并表之前添加For Each drow As DataRow In InvoicesFDataSet.SorMaster
drow.SetAdded()
Next
来解决的。 / p>
希望这可以帮助那些一直在寻找类似问题答案的人。