Vb.net 作为SQL事务的一部分调用子例程

Vb.net 作为SQL事务的一部分调用子例程,vb.net,ms-access,infragistics,Vb.net,Ms Access,Infragistics,我的项目是一个订单应用程序,用户可以在其中输入来自不同客户的订单,使用UltraGrid输入和编辑数据。当按下键盘上的Delete键时,它会提示用户确认要删除所选行的MsgBox,如果是,它会运行Delete查询以从数据库中删除该行 我还有一个保存按钮,允许用户保存订单/对订单所做的更改。理想情况下,我只希望网格中的行暂时删除,因为如果用户不保存订单,则不应从数据库中永久删除订单行 如果我将DELETE查询放入一个单独的子例程中,那么我可以从我的类中调用这个子例程并将其保存为事务的一部分吗 这似

我的项目是一个订单应用程序,用户可以在其中输入来自不同客户的订单,使用
UltraGrid
输入和编辑数据。当按下键盘上的Delete键时,它会提示用户确认要删除所选行的
MsgBox
,如果是,它会运行
Delete
查询以从数据库中删除该行

我还有一个保存按钮,允许用户保存订单/对订单所做的更改。理想情况下,我只希望网格中的行暂时删除,因为如果用户不保存订单,则不应从数据库中永久删除订单行

如果我将
DELETE
查询放入一个单独的子例程中,那么我可以从我的类中调用这个子例程并将其保存为事务的一部分吗

这似乎是行不通的,因为我不仅需要调用查询,还需要以某种方式将删除的行临时存储在某个位置,以便它知道要在事务中删除哪些数据,还需要一个
Boolean
变量来告诉它是否有任何数据要删除


有没有更简单的方法?上述方法行得通吗?

最简单的方法是将所有更改(添加、修改和删除)保留在内存中,然后在按下保存按钮时将它们同步到数据库


您可能需要一个AJAX操作来将操作添加到服务器端,还需要一个客户端脚本来更新网格上的行。

最简单的方法是将所有更改(添加、修改和删除)保留在内存中,然后在点击保存按钮时将它们同步到数据库


您可能需要一个AJAX操作来将操作添加到服务器端,还需要一个客户端脚本来更新网格上的行。

网格不适用于后端数据库。它只处理其本地数据源。因此,当您将数据保存回数据库时,请检查删除的行并保留它们


如果只想在“保存”按钮上更新本地数据源,可以将网格设置为OnUpdate。然后需要调用grid的方法。同样,这将更新您的本地数据源。本地数据源更新后端数据库的方式和时间与网格没有任何共同之处。因此,根据本地数据源的类型,在将更新的数据发送回数据库之前,您需要先检查已删除的行。

网格不适用于后端数据库。它只处理其本地数据源。因此,当您将数据保存回数据库时,请检查删除的行并保留它们


如果只想在“保存”按钮上更新本地数据源,可以将网格设置为OnUpdate。然后需要调用grid的方法。同样,这将更新您的本地数据源。本地数据源更新后端数据库的方式和时间与网格没有任何共同之处。因此,根据本地数据源的类型,在将更新的数据发送回数据库之前,需要先检查已删除的行。

对其进行排序。。。实际上根本不需要什么复杂的东西,只需要更改代码,如下所示:

Try
   Dim Dc As New OleDbCommand
   Dim rowcode As String = ""

         rowcode = dr.Item("Product_Code").Value
改为:

Try
   Dim Dc As New OleDbCommand
   Dim rowcode As String = ""

         rowcode = dr.Item("Product_Code", DataRowVersion.Original)

排序它。。。实际上根本不需要什么复杂的东西,只需要更改代码,如下所示:

Try
   Dim Dc As New OleDbCommand
   Dim rowcode As String = ""

         rowcode = dr.Item("Product_Code").Value
改为:

Try
   Dim Dc As New OleDbCommand
   Dim rowcode As String = ""

         rowcode = dr.Item("Product_Code", DataRowVersion.Original)

这是用于MS Access(标记的)还是用于SQL Server(tsql标记暗示的)@marc_抱歉,这是用于MS Access的,我一定误用了标记,没有意识到这是用于SQL Server的,这是用于MS Access(标记的)还是用于SQL Server(tsql标记暗示的)@marc_抱歉,这是用于MS Access的,我一定是误用了标签,没有意识到它是用于SQL Server的,请参见上面的编辑;我现在在保存查询中添加了删除代码。。。如何使用相同的
数据集
传入已删除的数据?如果已将UpdateMode设置为OnUpdate,则需要在单击“保存”按钮时通过UltraGrid调用UpdateData方法。这将更新线集数据集。请参见上面的编辑;我现在在保存查询中添加了删除代码。。。如何使用相同的
数据集
传入已删除的数据?如果已将UpdateMode设置为OnUpdate,则需要在单击“保存”按钮时通过UltraGrid调用UpdateData方法。这将更新线集数据集。