Imports Microsoft.VisualBasic
Imports System.data

Public Class OrderData

    Private Shared _dSet As New DataSet()

    Public Shared Sub TestData()
        Dim dOrdersTable As New DataTable("Orders")
        Dim dPriKeyCol As DataColumn
        Dim dRow As DataRow

        ' Clear everything so we don't duplicate
        ' the dummy rows again
        '
        If Not _dSet Is Nothing Then
            _dSet.Dispose()
            _dSet = Nothing
        End If
        _dSet = New DataSet

        dPriKeyCol = dOrdersTable.Columns.Add("Id", Type.GetType("System.Int32"))
        dPriKeyCol.AutoIncrement = True
        dPriKeyCol.ReadOnly = True
        dPriKeyCol.Unique = True
        dPriKeyCol.AllowDBNull = False
        dOrdersTable.PrimaryKey = New DataColumn() {dOrdersTable.Columns("Id")}
        dOrdersTable.Columns.Add("Name", Type.GetType("System.String"))
        dOrdersTable.Columns.Add("Price", Type.GetType("System.Double"))
        dOrdersTable.Columns.Add("Quantity", Type.GetType("System.Int32"))
        dOrdersTable.Columns.Add("Cost", Type.GetType("System.Double"), "Price*Quantity")
        _dSet.Tables.Add(dOrdersTable)

        dRow = dOrdersTable.NewRow()
        dRow("Name") = "Apple"
        dRow("Price") = 0.5
        dRow("Quantity") = 10
        dOrdersTable.Rows.Add(dRow)
        dOrdersTable.AcceptChanges()
    End Sub

    Public Function SelectOrders() As DataTable
        Return _dSet.Tables("Orders")
    End Function

    Public Sub UpdateOrder(ByVal Id As Integer, ByVal Name As String, ByVal Price As Double, ByVal Quantity As Integer)
        Dim fndRow() As DataRow
        fndRow = _dSet.Tables("Orders").Select("Id = " & Id)

        fndRow(0)("Name") = Name
        fndRow(0)("Price") = Price
        fndRow(0)("Quantity") = Quantity
        fndRow(0).AcceptChanges()
    End Sub

End Class
