คือ เลือกรายการมาใส่ใน ListView แล้ว อยากจะตัดStock จากรายการในตาราง Listview โดยกดปุ่มบันทึกคะ
ลองเขียนโค้ดเองแล้ว มันบันทึกให้ แต่ไม่ตัดStock ในตาราง Product เลยค่ะ
อันนี้ Source Code ____________________________________________________________________
Private Sub Confirm_Btn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Confirm_Btn.Click
If Sale_ListView.Items.Count > 0 Then
If MessageBox.Show("คุณต้องการยืนยันการขายสินค้า ใช่หรือไม่?", "คำยืนยัน", MessageBoxButtons.YesNo, MessageBoxIcon.Question) = Windows.Forms.DialogResult.Yes Then
Dim sql As String = ""
Dim SqlParam As SqlParameter
Dim NumRows, i As Integer
Dim comUpdate As New SqlCommand
NumRows = Sale_ListView.Items.Count - 1
'ส่วนบันทึกข้อมูล--------------------------------------------------------------------------------------------------------------
sql = "INSERT INTO Sale (sale_no, sale_date, cus_no)"
sql &= "VALUES (@saleno, @saledate, @cusno)"
_cmd = New SqlCommand(sql, Conn)
SqlParam = New SqlParameter
SqlParam.ParameterName = "@saledate"
SqlParam.SqlDbType = SqlDbType.DateTime
SqlParam.Value = DateTimePicker1.Value
_cmd.Parameters.Add(SqlParam)
_cmd.Parameters.AddWithValue("saleno", lblS_ID.Text)
_cmd.Parameters.AddWithValue("cusno", txtM_ID.Text)
Try
With Conn
If .State = ConnectionState.Open Then .Close()
.ConnectionString = strConnection
.Open()
End With
With _cmd
.CommandType = CommandType.Text
.CommandText = sql
.Connection = Conn
.ExecuteNonQuery()
End With
Catch ErrProcess As Exception
MessageBox.Show("ไม่สามารถเพิ่มข้อมูลได้ เนื่องจาก " & ErrProcess.Message, "ข้อผิดพลาด", MessageBoxButtons.OK, MessageBoxIcon.Error)
Exit Sub
End Try
'ส่วนตัดStock เริ่มจากนี่คะ---------------------------------------------------------------------------------------------------------
For i = 0 To NumRows
strSQL = "UPDATE Product SET pro_stock = pro_stock - @prostock WHERE(pro_no = @prono)"
With comUpdate
.Parameters.Clear()
.Parameters.Add("prostock", SqlDbType.Int).Value = Sale_ListView.Items(i).SubItems(3).Text
.Parameters.Add("prono", SqlDbType.VarChar).Value = Sale_ListView.Items(i).SubItems(0).Text.ToString()
.CommandType = CommandType.Text
.CommandText = strSQL
.Connection = Conn
.ExecuteNonQuery()
End With
Next
MessageBox.Show("บันทึกการขายสินค้า เรียบร้อยแล้ว", "ผลการทำงาน", MessageBoxButtons.OK, MessageBoxIcon.Information)
cmdAdd.Enabled = True
ClearAllData()
SaveCancel()
End If
End If
End Sub
รบกวนช่วยแก้โค้ดให้ถูกต้องทีนะคะ ><
ขอบคุณมากคะ
โค้ด VB จะตัดStockสินค้า จากตาราง ListView ทำยังไงคะ มันไม่ตัดให้เลยคะ
ลองเขียนโค้ดเองแล้ว มันบันทึกให้ แต่ไม่ตัดStock ในตาราง Product เลยค่ะ
อันนี้ Source Code ____________________________________________________________________
Private Sub Confirm_Btn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Confirm_Btn.Click
If Sale_ListView.Items.Count > 0 Then
If MessageBox.Show("คุณต้องการยืนยันการขายสินค้า ใช่หรือไม่?", "คำยืนยัน", MessageBoxButtons.YesNo, MessageBoxIcon.Question) = Windows.Forms.DialogResult.Yes Then
Dim sql As String = ""
Dim SqlParam As SqlParameter
Dim NumRows, i As Integer
Dim comUpdate As New SqlCommand
NumRows = Sale_ListView.Items.Count - 1
'ส่วนบันทึกข้อมูล--------------------------------------------------------------------------------------------------------------
sql = "INSERT INTO Sale (sale_no, sale_date, cus_no)"
sql &= "VALUES (@saleno, @saledate, @cusno)"
_cmd = New SqlCommand(sql, Conn)
SqlParam = New SqlParameter
SqlParam.ParameterName = "@saledate"
SqlParam.SqlDbType = SqlDbType.DateTime
SqlParam.Value = DateTimePicker1.Value
_cmd.Parameters.Add(SqlParam)
_cmd.Parameters.AddWithValue("saleno", lblS_ID.Text)
_cmd.Parameters.AddWithValue("cusno", txtM_ID.Text)
Try
With Conn
If .State = ConnectionState.Open Then .Close()
.ConnectionString = strConnection
.Open()
End With
With _cmd
.CommandType = CommandType.Text
.CommandText = sql
.Connection = Conn
.ExecuteNonQuery()
End With
Catch ErrProcess As Exception
MessageBox.Show("ไม่สามารถเพิ่มข้อมูลได้ เนื่องจาก " & ErrProcess.Message, "ข้อผิดพลาด", MessageBoxButtons.OK, MessageBoxIcon.Error)
Exit Sub
End Try
'ส่วนตัดStock เริ่มจากนี่คะ---------------------------------------------------------------------------------------------------------
For i = 0 To NumRows
strSQL = "UPDATE Product SET pro_stock = pro_stock - @prostock WHERE(pro_no = @prono)"
With comUpdate
.Parameters.Clear()
.Parameters.Add("prostock", SqlDbType.Int).Value = Sale_ListView.Items(i).SubItems(3).Text
.Parameters.Add("prono", SqlDbType.VarChar).Value = Sale_ListView.Items(i).SubItems(0).Text.ToString()
.CommandType = CommandType.Text
.CommandText = strSQL
.Connection = Conn
.ExecuteNonQuery()
End With
Next
MessageBox.Show("บันทึกการขายสินค้า เรียบร้อยแล้ว", "ผลการทำงาน", MessageBoxButtons.OK, MessageBoxIcon.Information)
cmdAdd.Enabled = True
ClearAllData()
SaveCancel()
End If
End If
End Sub
รบกวนช่วยแก้โค้ดให้ถูกต้องทีนะคะ ><
ขอบคุณมากคะ