如何使用 VB.NET 在MS-ACCESS数据库中将一个查询与另一个查询进行协调

How to Reconcile one query with another in MS-ACCESS database with VB.NET

提问人:siwa86 提问时间:9/21/2023 更新时间:9/21/2023 访问量:28

问:

我想使用 VB.NET 将 MS-ACCESS 数据库中的一个查询与另一个查询进行协调。

所以我想将 loaddata1 与 loaddata2 进行协调,loaddata2 用于列,无论它是否相同QTY_STOCK,QTY_STOCKIN,QTY_STOCKOUT

实际上,如果我直接使用 loaddata2,我不需要协调,但问题是我无法在列中更新。SACK_NUMBER

请指导我采取正确的方法。

谢谢

 Private Function CreateConnection() As OleDbConnection
        Return New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\DEMO.accdb;Persist Security Info=False;")
    End Function
    Private Function LoadData1() As DataTable
        Dim dt As New DataTable()

        Using con = CreateConnection(), cmd = con.CreateCommand(),
        ta = New OleDbDataAdapter(cmd)
            Dim sql = <sql>
SELECT * From Stocks;
</sql>.Value
            cmd.CommandText = sql
            ta.Fill(dt)
        End Using
        Return dt
    End Function
    Private Function LoadData2() As DataTable
        Dim dt As New DataTable()

        Using con = CreateConnection(), cmd = con.CreateCommand(),
        ta = New OleDbDataAdapter(cmd)
            Dim sql = <sql>
SELECT  
    t1.CodeProduct, t1.Barcode, t1.Colorcode, t1.[Size], 
    t1.ColorName,
    IIf(IsNull(t1.Qty),'0',t1.Qty)-IIf(IsNull(t2.Qty),'0',t2.Qty) AS QTY_STOCK,
    t1.Qty AS QTY_STOCKIN, t2.Qty AS QTY_STOCKOUT
FROM
    StocksinDetail AS t1
LEFT JOIN 
    StocksoutDetail AS t2 ON (t1.[Size] = t2.[Size])
                          AND (t1.Colorcode = t2.Colorcode)
                          AND (t1.Barcode = t2.Barcode)
                          AND (t1.CodeProduct = t2.CodeProduct);
</sql>.Value
            cmd.CommandText = sql
            ta.Fill(dt)
        End Using
        Return dt
    End Function
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        Datagridview1.DataSource = LoadData1()
    End Sub

VIEW IN DATAGRIDVIEW

VIEW IN DATAGRIDVIEW

SQL vb.net MS-Access DataTable DataGridView

评论

0赞 Shahram Alemzadeh 9/23/2023
我不确定我是否正确理解了这个问题,但似乎在 LoadDate2 中您正在使用联接查询,这导致返回的数据表不可更新。如果是这样,也许删除联接并在数据表中使用计算字段会有所帮助。
0赞 siwa86 9/23/2023
@ShahramAlemzadeh,实际上我想将 LoadData1 与 LoadData2 进行协调

答: 暂无答案