โค้ด VB หน้าขายไม่สามารถเซฟรายการขายหลายๆๆ รายการได้ครับ

หน้าใบขายผมเซฟข้อมูลลง Sql ได้ 1 รายการต่อ 1 ใบขายเองครับ ถ้าใบขายนั้นมีรายการสินค้ามากกว่า 1 รายการ มันเซฟไม่เข้าน่ะครับ ในฐานข้อมูลจะโผล่แค่รายการเดียวคือรายการแรกสุด ที่เหลือหายไปไหนไม่รู้ แต่ยอดรวมราคาขึ้นปกติครับ
โปรแกรมที่ใช้ VB 2010
ฐานข้อมูลที่ใช้ Sql ครับ
มี 2 table ที่เกี่ยวกับใบขาย คือ Sell , Sell_detail ครับ
อยากรบกวนช่วยดูโค้ดให้หน่อยครับว่าผิดตรงไหน
'=======================================
        Dim sql As String = ""

        '  Insert ลงในตาราง Sell
        sql = " Insert Into Sale(ID_Sale,ID_Cus,Date_Sale,Receive_Sale,Dis_Sale,Vat_Sale,Total,NetTotal) values(" & _
                  "@sid,@cid,@eid,@sd,@tm,@tp,@dc,@net)"
        cmd = New SqlCommand(sql, Connection)
        With cmd
            .Parameters.AddWithValue("sid", TxtsaleID.Text)
            .Parameters.AddWithValue("cid", TxtID.Text)
            .Parameters.AddWithValue("eid", DateTimePicker1.Text)
            .Parameters.AddWithValue("sd", DateTimePicker2.Text)
            .Parameters.AddWithValue("tm", CInt(TxtDis.Text))
            .Parameters.AddWithValue("tp", CInt(TxtVat.Text))
            .Parameters.AddWithValue("dc", CInt(TxtSum.Text))
            .Parameters.AddWithValue("net", CInt(TxtNet.Text))
        End With
        ConnectDB()
        cmd.ExecuteNonQuery()
        cmd.Parameters.Clear()


        '======================================
        '========= insert ตาราง Sell_detail

        Sql = "Insert into Sale_Order(ID_Sale,ID_Product,Price,Qty) values(" & "@sid,@pid,@up,@Qty)"
        cmd = New SqlCommand(Sql, Connection)
        For r As Integer = 0 To DataGridView1.RowCount - 2
            tmpPids = DataGridView1.Rows(r).Cells(0).Value
            tmpQty = CInt(DataGridView1.Rows(r).Cells(4).Value)
            With cmd
                .Parameters.AddWithValue("sid", (TxtsaleID.Text))
                .Parameters.AddWithValue("pid", CInt(DataGridView1.Rows(r).Cells(0).Value))
                .Parameters.AddWithValue("up", CInt(DataGridView1.Rows(r).Cells(2).Value))
                .Parameters.AddWithValue("Qty", CInt(DataGridView1.Rows(r).Cells(4).Value))
            
            End With
            ConnectDB()
            cmd.ExecuteNonQuery()
            ' cmd.Parameters.Clear()
            cutStock(tmpPids, tmpQty)
        Next

        MsgBox("Complate OK")
แสดงความคิดเห็น
โปรดศึกษาและยอมรับนโยบายข้อมูลส่วนบุคคลก่อนเริ่มใช้งาน อ่านเพิ่มเติมได้ที่นี่