如何在 VB.NET 中使用 dapper 从 datagridview 更新 MS-ACCESS 数据库

问题描述 投票:0回答:1

之前我通过循环数据表到数据库进行了sql插入,但现在我想用dapper更新到数据库,请指导我,以便我采取的方法没有错误,因为稍后这个过程将与金额相关库存商品数量。

谢谢

Public Class Form2
    Inherits Form
 Dim itrservice As New ItemtransfersService()
    Sub New()
        InitializeComponent()
    End Sub
 Public Sub New(item As ItemTransfers)
        Me.New
 DataGridView1.DataSource = itrservice.GetItemTransfersDetail(item.Invno)
        DataGridView1.Columns(1).Visible = False
 TextBox1.Text = item.Invno
        TextBox2.Text = item.Created
 Private Sub BtnUpdate_Click(sender As Object, e As EventArgs) Handles BtnUpdate.Click
        If DataGridView1.RowCount = 0 Then
            Throw New Exception("Enter Item data item first")
        End If
        Dim obj = New ItemTransfers With {
                  .Modified = DateTime.Now
                  }
        itrservice.UpdateItemTransfers(obj)
        'For i = 0 To _myTable.Rows.Count - 1
        '    Dim detail = New ItemTransfersDetail With {
        '    '     .No = Convert.ToInt32(_myTable.Rows(i)(0)),
        '    '            .CodeProduct = _myTable.Rows(i)(1).ToString(),
        '    '            .Barcode = _myTable.Rows(i)(2).ToString(),
        '    '            .Colorcode = _myTable.Rows(i)(3).ToString(),
        '    '            .Size = _myTable.Rows(i)(4).ToString(),
        '    '            .Qty = Convert.ToInt32(_myTable.Rows(i)(5).ToString())
        '    '            }
        '    'itrservice.UpdateItemTransfersdetail(detail)
        'Next i


    End Sub
End Class
   Public Sub UpdateItemTransfers(ByVal Obj As ItemTransfers)
        Dim sql = $"UPDATE `Stocksout` Set Modified`='{Obj.Modified}' WHERE `Invno`='{Obj.Invno}';"
        Using _conn = New OleDbConnection(GetOledbConnectionString())
            _conn.Execute(sql)
        End Using
    End Sub
    Public Sub UpdateItemTransfersdetail(ByVal Obj As ItemTransfersDetail)
        Dim sql = $"UPDATE `Stocksoutdetail` Set `No`={Obj.No},`CodeProduct`='{Obj.CodeProduct}',`Barcode`='{Obj.Barcode}',`Colorcode`='{Obj.Colorcode}',`Size`='{Obj.Size}',`Qty`={Obj.Qty} WHERE `Invno`='{Obj.Invno}';"
        Using _conn = New OleDbConnection(GetOledbConnectionString())
            _conn.Execute(sql)
        End Using
    End Sub
 Public Sub Updatestockminus(ByVal Obj As Stocks)
        Dim sql = $"UPDATE `Stocks` Set `QTY_STOCK`= {Obj.Qty_Stock},`QTY_STOCKOUT`= {Obj.Qty_Stockout} WHERE `CodeProduct`='{Obj.CodeProduct}' and `BARCODE`='{Obj.Barcode}' and `COLORCODE`='{Obj.Colorcode}' and `SIZE`='{Obj.Size}';"
        Using _conn = New OleDbConnection(GetOledbConnectionString())
            _conn.Execute(sql)
        End Using
    End Sub

表单视图(表单2)

vb.net ms-access datatable datagridview dapper
1个回答
0
投票

此链接提供了我的问题的解决方案链接

Private Sub BtnUpdate_Click(sender As Object, e As EventArgs) Handles BtnUpdate.Click
        If DataGridView1.RowCount = 0 Then
            Throw New Exception("Enter Item data item first")
        End If
        Dim obj = New ItemTransfers With {
                  .Modified = DateTime.Now,
                  .Invno = TextBox1.Text
                  }
        itrservice.UpdateItemTransfers(obj)
  For Each item As DataGridViewRow In DataGridView1.Rows
Dim detail = New ItemTransfersDetail With {
                        .CodeProduct = CStr(item.Cells(2).Value),
                        .Barcode = CStr(item.Cells(3).Value),
                        .Colorcode = CStr(item.Cells(4).Value),
                        .Size = CStr(item.Cells(5).Value),
                        .Qty = Convert.ToInt32(item.Cells(6).Value),
                        .Invno = TextBox1.Text,
                         .No = Convert.ToInt32(item.Cells(0).Value)
            }
 itrservice.UpdateItemTransfersdetail(detail)
 Next item
        MessageBox.Show("Record Updated Successfully")
  End Sub
© www.soinside.com 2019 - 2024. All rights reserved.