โค้ด VB Error แก้ไม่หายซะที ค้างมาหลายอาทิตย์แล้ว ช่วยทีคะ !!!!!

จากปัญหาเดิม
http://ppantip.com/topic/30891800
ขึ้น Error ว่า The INSERT statement conflicted with the FOREIGN KEY constraint "FK_Sale_Detail_Product". The conflict occurred in database "Project", table "dbo.Product", column 'pro_no'. The statement has been terminated.

ลองแก้ฐานข้อมูลให้เป็นแบบนี้แล้วคะ
ตาราง Sale : sale_no(PK), sale_date, cus_no(FK)
ตาราง Sale_Detail : order_no(PK) ตัวนี้เพิ่มเข้ามาเพื่อเป็นตัวนับตามคห.กระทู้ที้แล้วคะ ตั้งค่าให้เป็น IS Identity คือเรียงลำดับให้อัตโนมัติ 1,2,3,... , sale_no(FK), pro_no(FK), amount, sale_price

(ตารางฐานข้อมูลอื่นๆที่เกี่ยวข้อง)
ตารางCustomer : cus_no(PK), cus_name, cus_add, cus_tel
ตารางProduct : pro_no(PK), pro_name, pro_cost, pro_price, pro_stock, record_date

และลองแก้ไขให้Save ทีละปุ่มคะ

ปุ่มแรก ให้บันทึกในตาราง Sale ก่อน
____________________________________________________________________________________________
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

                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

                MessageBox.Show("บันทึกการขายสินค้า เรียบร้อยแล้ว", "ผลการทำงาน", MessageBoxButtons.OK, MessageBoxIcon.Information)

            End If
        End If
    End Sub
_____________________________________________________________________________________________
ในส่วนนี้บันทึกเข้าไปในฐานข้อมูล "Sale" ได้ ไม่มีปัญหาคะ
และอีกปุ่มนึง ให้บันทึกลงในตาราง Sale_Detail คะ
_____________________________________________________________________________________________
Private Sub cmdSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdSave.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 i As Integer = 0
                For i = 0 To Sale_ListView.Items.Count - 1
                    sql = "INSERT INTO Sale_Detail (sale_no, pro_no, amount, sale_price)"
                    sql &= " VALUES(" & (Sale_ListView.Items(i).SubItems(0).Text) & ","         'ในListView เป็นคอลัมภ์ เลขที่การขาย
                    sql &= (Sale_ListView.Items(i).SubItems(1).Text) & ","                                 'ในListView เป็นคอลัมภ์ รหัสสินค้า
                    sql &= (Sale_ListView.Items(i).SubItems(3).Text) & ","                                 'ในListView เป็นคอลัมภ์ จำนวน
                    sql &= (Sale_ListView.Items(i).SubItems(4).Text) & ")"                                 'ในListView เป็นคอลัมภ์ ราคาขาย
                    _cmd = New SqlCommand(sql, Conn)

                    With _cmd
                        .CommandType = CommandType.Text
                        .CommandText = sql
                        .Connection = Conn
                        .ExecuteNonQuery()
                    End With

                Next

                MessageBox.Show("บันทึกสินค้า เรียบร้อยแล้ว", "ผลการทำงาน", MessageBoxButtons.OK, MessageBoxIcon.Information)
                
            End If

        End If

    End Sub
__________________________________________________________________________________________
ปุ่มที่2 บันทึกลงไปในตาราง "Sale_Detail" ไม่ได้คะ ถึงจะแก้แล้ว ก็ยังขึ้น Error เหมือนเดิมคะ

The INSERT statement conflicted with the FOREIGN KEY constraint "FK_Sale_Detail_Product". The conflict occurred in database "Project", table "dbo.Product", column 'pro_no'. The statement has been terminated.

ไม่รู้จะแก้ยังไงดีแล้วคะ แก้มาหลายอาทิตย์แล้ว กับปัญหานี้
แก้ฐานข้อมูลหลายแบบแล้ว ก็ยังไม่ได้

ขอคำตอบจากพี่ๆผู้เชี่ยวชาญด้วยคะ
ลองดูหลายๆแบบ เผื่อจะออกซักที
แก้ไขข้อความเมื่อ
แสดงความคิดเห็น
โปรดศึกษาและยอมรับนโยบายข้อมูลส่วนบุคคลก่อนเริ่มใช้งาน อ่านเพิ่มเติมได้ที่นี่