📄 checkout.vb
字号:
Imports System.Data
Imports System.Data.SqlClient '新增命名空間 for SQL Server
Public Class CheckOut
'\\\\\\\\\\\\\\\\\\\\\ 訂單資料 宣告 \\\\\\\\\\\\\\\\\\\\\\\\\
Dim errorMsg As String
Dim ConnString As String
Dim conn As SqlConnection
Dim da As SqlDataAdapter
Dim cmd As SqlCommand
'\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
Private Sub CheckOut_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load
GetConsumeRecordView(0, ListView1)
End Sub
#Region "資料庫初始化"
''' <summary>
''' 資料庫初始化
''' </summary>
Public Sub InitDB()
ConnString = SQLConnectionString()
conn = New SqlConnection(ConnString)
conn.Open()
End Sub
#End Region
Private Sub TabControl1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles TabControl1.SelectedIndexChanged
Select Case (TabControl1.SelectedIndex)
Case 0
GetConsumeRecordView(0, ListView1)
End Select
End Sub
'---------------------------訂單資料 start-------------------------------
'明細表
Private Sub btn_FoodList_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_FoodList.Click
Dim OrderId As String = ListView1.Items(ListView1.FocusedItem.Index).SubItems(1).Text
Dim Moneys As String = ListView1.Items(ListView1.FocusedItem.Index).SubItems(2).Text
txt_OrderId.Text = OrderId
lblTotalCash.Text = Moneys
GetOrderDBView(OrderId)
TabControl1.SelectedIndex = 1
End Sub
'重新整理
Private Sub btn_refresh_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_refresh.Click
GetConsumeRecordView(0, ListView1)
End Sub
#Region "讀取訂單明細"
Private Sub GetOrderDBView(ByVal OrderId As String)
Dim DT As DataTable = GetOrderDBDataTable("ProductId", "ASC", OrderId)
Dim LVI As ListViewItem
lvwProduct.Items.Clear()
For Each row As DataRow In DT.Rows
LVI = New ListViewItem(row("ProductName").ToString())
LVI.SubItems.Add(row("ProductCost").ToString())
LVI.SubItems.Add(row("ProductNums").ToString())
LVI.SubItems.Add(row("ProductId").ToString())
lvwProduct.Items.Add(LVI)
Next
DT.Dispose()
End Sub
#End Region
#Region "將OrderDB資料表的內容以DataTable方式回傳"
''' <summary>
''' 將OrderDB資料表的內容以DataTable方式回傳
'''</summary>
''' <param name="OrderByColumn">要排序的欄位</param>
''' <param name="ASCorDESC">ASC遞增,DESC遞減</param>
''' <returns></returns>
Public Function GetOrderDBDataTable(ByVal OrderByColumn As String, ByVal ASCorDESC As String, ByVal OrderId As String) As DataTable
Dim TableName As String = "OrderDB"
Dim selectCmd As String
selectCmd = "SELECT * FROM " + TableName + " WHERE (OrderId Like '%" + OrderId + "%') Order By " + OrderByColumn + " " + ASCorDESC
Try
InitDB()
da = New SqlDataAdapter(selectCmd, conn)
Dim DT As DataTable = New DataTable()
da.Fill(DT)
da.Dispose()
conn.Close()
Return DT
Catch ex As Exception
MsgBox("資料庫連線錯誤!")
Return Nothing
End Try
End Function
#End Region
#Region "讀取訂單資料"
Private Sub GetConsumeRecordView(ByVal Pay As String, ByVal objlvw As ListView)
Dim DT As DataTable = GetConsumeRecordDataTable("ConsumeDate", "ASC", Pay)
Dim LVI As ListViewItem
objlvw.Items.Clear()
For Each row As DataRow In DT.Rows
LVI = New ListViewItem(row("TableId").ToString())
LVI.SubItems.Add(row("OrderId").ToString())
LVI.SubItems.Add(row("Moneys").ToString())
LVI.SubItems.Add(row("ConsumeDate").ToString())
objlvw.Items.Add(LVI)
Next
DT.Dispose()
End Sub
#End Region
#Region "將ConsumeRecord資料表的內容以DataTable方式回傳"
''' <summary>
''' 將ConsumeRecord資料表的內容以DataTable方式回傳
'''</summary>
''' <param name="OrderByColumn">要排序的欄位</param>
''' <param name="ASCorDESC">ASC遞增,DESC遞減</param>
''' <returns></returns>
Public Function GetConsumeRecordDataTable(ByVal OrderByColumn As String, ByVal ASCorDESC As String, ByVal Pay As String) As DataTable
Dim TableName As String = "ConsumeRecord"
Dim selectCmd As String
selectCmd = "SELECT * FROM " + TableName + " WHERE (Pay = " + Pay + ") Order By " + OrderByColumn + " " + ASCorDESC
Try
InitDB()
da = New SqlDataAdapter(selectCmd, conn)
Dim DT As DataTable = New DataTable()
da.Fill(DT)
da.Dispose()
conn.Close()
Return DT
Catch ex As Exception
MsgBox("資料庫連線錯誤!")
Return Nothing
End Try
End Function
#End Region
'---------------------------訂單資料 End-------------------------------
'---------------------------訂單明細 start-----------------------------
'結帳
Private Sub btn_CheckOut_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_CheckOut.Click
Dim OrderId As String = txt_OrderId.Text
If UpdatePay(OrderId) Then
MsgBox("完成結帳!")
TabControl1.SelectedIndex = 0
txt_OrderId.Text = ""
lblTotalCash.Text = ""
lvwProduct.Items.Clear()
Else
MsgBox("結帳失敗!")
End If
End Sub
#Region "進行結帳動作"
''' <summary>
''' 進行結帳動作
''' </summary>
''' <param name="OrderId">傳入訂單編號</param>
''' <returns></returns>
Public Function UpdatePay(ByVal OrderId As String) As Boolean
Dim TableName As String = "ConsumeRecord"
InitDB()
Dim updateCmd As String
Dim i As Integer = 0
updateCmd = "UPDATE " + TableName + " SET OrderId='" + OrderId + "'," '訂單編號
updateCmd = updateCmd + " Pay=1 " '1表示已結帳 , 0表示未結帳
updateCmd = updateCmd + " WHERE OrderId='" + OrderId + "'"
Try
cmd = New SqlCommand(updateCmd, conn)
i = cmd.ExecuteNonQuery()
conn.Close()
If i = 1 Then
Return True
Else
Return False
End If
Catch ex As Exception
errorMsg = ex.Message
conn.Close()
Return False
End Try
End Function 'UpdatePay
#End Region
'---------------------------訂單明細 End-------------------------------
End Class
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -