Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 107,523

HOME > .NET Framework > Forum > ขอสอบถามเรื่องการ insert 2 ตาราง มันบันทึกลงแค่ตารางเดียวครับ





 

ขอสอบถามเรื่องการ insert 2 ตาราง มันบันทึกลงแค่ตารางเดียวครับ

 



Topic : 121586



โพสกระทู้ ( 276 )
บทความ ( 0 )



สถานะออฟไลน์




คือ มันบันทึกลงแค่ตารางเดียว คือตาราง order_detail
อยากบันทึก 2 ตาราง แล้ว สองตารางนี้มีไอดีเชื่อมกันคือ Or_id

ตารางที่ 1 order_detail มี
Or_id, Printdata, Com_id

ตารางที่ 2 order มี
Or_id, Pro_id, Or_Quality

นี่ครับ Code
Code (VB.NET)
Private Sub process(ByVal st As String)
        If dtpPrint.Text = "" Or txtComName.Text = "" Or txtComtel.Text = "" Or dgvshow.Rows.Count = 0 Then
            MessageBox.Show("ข้อมูลไม่ครบ")
            Exit Sub
        End If
        If st = "add" Then '--เลือก insert ลงตารางก่อนบันทึก
            If MessageBox.Show("ต้องการบันทึกข้อมูลหรือไม่", "ยืนยัน", MessageBoxButtons.YesNo, MessageBoxIcon.Question) = Windows.Forms.DialogResult.Yes Then
                Dim sql As String
                For i As Integer = 0 To dgvshow.Rows.Count - 1
                    sql = "INSERT INTO order_detail (Or_id, Printdata, Com_id)" & _
                    "VALUES('" & Me.txtOrderid.Text & "','" & Me.dtpPrint.Text & "','" & Me.txtcomid.Text & "')"

                    Dim sql2 As String
                    sql2 = "INSERT INTO [order] (Or_id, Pro_id, Or_Quality)" & _
                    "VALUES('" & Me.txtOrderid.Text & "','" & Me.txtproid.Text & "','" & CInt(dgvshow.Rows(i).Cells(2).Value) & "')"
                    Try
                        Dim cm As New OleDbCommand(sql, Cnn)
                        Dim com As New OleDbCommand(sql2, Cnn)
                        cm.ExecuteNonQuery()

                    Catch ex As Exception
                        MessageBox.Show("ไม่สามารถบันทึกข้อมูลได้", "ผลการดำเนินการ", MessageBoxButtons.OK, MessageBoxIcon.Warning)
                        Exit Sub
                    End Try
                Next
                MessageBox.Show("บันทึกข้อมูลเรียบร้อย", "ผลการดำเนินการ", MessageBoxButtons.OK, MessageBoxIcon.Information)
            End If

            'ElseIf st = "edit" Then
            '    If MessageBox.Show("ต้องการแก้ไขข้อมูลหรือไม่", "ยืนยัน", MessageBoxButtons.YesNo, MessageBoxIcon.Question) = Windows.Forms.DialogResult.Yes Then
            '        Dim sql As String
            '        sql = " update [order] set"
            '        sql &= " Printdate = '" & dtpPrint.Text & "',"
            '        sql &= " Pro_name = '" & txtProName.Text & "',"
            '        sql &= " Or_num= " & txtamount.Value & ","
            '        sql &= " Com_name= '" & txtComName.Text & "',"
            '        sql &= " [Tel]= '" & txtComtel.Text & "',"
            '        sql &= " Or_pt= " & CDbl(txtProPrice.Text)
            '        sql &= " Or_price= " & CDbl(txttotal.Text) & ","
            '        sql &= " where Or_id ='" & txtOrderid.Text & "'"
            '        Try

            '            Dim cm As New OleDbCommand(sql, Cnn)
            '            cm.ExecuteNonQuery()
            '            MessageBox.Show("แก้ไขข้อมูลเรียบร้อยแล้ว", "ผลการดำเนินการ", MessageBoxButtons.OK, MessageBoxIcon.Information)
            '        Catch ex As Exception
            '            MessageBox.Show("ไม่สามารถแก้ไขข้อมูลได้", "ผลการดำเนินการ", MessageBoxButtons.OK, MessageBoxIcon.Warning)
            '        End Try
            '    End If

            'ElseIf st = "del" Then
            '    If MessageBox.Show("ต้องการลบข้อมูลหรือไม่", "ยืนยัน", MessageBoxButtons.YesNo, MessageBoxIcon.Question) = Windows.Forms.DialogResult.Yes Then
            '        Dim sql As String
            '        sql = "delete from [order] where or_id ='" & txtOrderid.Text & "'"
            '        Try

            '            Dim cm As New OleDbCommand(sql, Cnn)
            '            cm.ExecuteNonQuery()
            '            MessageBox.Show("ลบข้อมูลเรียบร้อยแล้ว", "ผลการดำเนินการ", MessageBoxButtons.OK, MessageBoxIcon.Information)
            '        Catch ex As Exception
            '            MessageBox.Show("ไม่สามารถลบข้อมูลได้", "ผลการดำเนินการ", MessageBoxButtons.OK, MessageBoxIcon.Warning)
            '        End Try
            '    End If
        End If
        'showdata()
        'If ds.Tables("data").Rows.Count = 0 Then
        Clear()
        'Else
        'detaildata(0)
        'End If
    End Sub


แล้วอีกอย่างอยากให้ตาราง order บันทึกแบบ 1 ID หลายเรคคอร์ดอย่างภาพ
่่่jk



Tag : .NET, Ms Access, VS 2012 (.NET 4.x)







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2016-02-24 13:26:46 By : erlnw001 View : 567 Reply : 7
 

 

No. 1



โพสกระทู้ ( 3,950 )
บทความ ( 23 )



สถานะออฟไลน์
Facebook

Dim cm As New OleDbCommand(sql, Cnn)
Dim com As New OleDbCommand(sql2, Cnn)

cm.ExecuteNonQuery()



com.ExecuteNonQuery() หายไปไหนรึ






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-02-24 13:35:06 By : lamaka.tor
 


 

No. 2



โพสกระทู้ ( 276 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 1 เขียนโดย : lamaka.tor เมื่อวันที่ 2016-02-24 13:35:06
รายละเอียดของการตอบ ::
ขอบคุณครับ บันทึกได้แล้ว 2 ตาราง

แต่อยากรู้ว่า ถ้าจะทำให้ ตารางorder บันทึกหลาย เรคคอร์ด แต่1ไอดีทำไงครับ
จากรูปถ้าเลือก 2 รายการอย่างนี้มันไม่บันทึกให้อ่ะครับ
่่่่ddfg


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-02-24 13:55:47 By : erlnw001
 

 

No. 3



โพสกระทู้ ( 3,950 )
บทความ ( 23 )



สถานะออฟไลน์
Facebook

ง่ายสุดก็ for loop แบบบ้านๆครับ

Code (VB.NET)
for .......
sql2 = "INSERT INTO [order] (Or_id, Pro_id, Or_Quality)" & _
"VALUES('" & Me.txtOrderid.Text & "','" & Pro_id  & "','" & Or_Quality & "')"
com.ExecuteNonQuery() 'Execute เพื่อ Insrt แต่ละเรคคอร์ด
Next


ขึ้นอยู่กับว่าไอ้เจ้า หลายๆ เรคคอร์ด ที่ว่านั้นมันอยู่ที่ไหนบ้างครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-02-24 14:35:13 By : lamaka.tor
 


 

No. 4



โพสกระทู้ ( 276 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 3 เขียนโดย : lamaka.tor เมื่อวันที่ 2016-02-24 14:35:13
รายละเอียดของการตอบ ::
ขอโทษนะครับ คือยังบันทึกไม่ได้ ไม่แน่ใจว่า Code ถูกเปล่าครับ
นี่ครับ code
Code (VB.NET)
Private Sub process(ByVal st As String)
        If dtpPrint.Text = "" Or txtComName.Text = "" Or txtComtel.Text = "" Or dgvshow.Rows.Count = 0 Then
            MessageBox.Show("ข้อมูลไม่ครบ")
            Exit Sub
        End If
        If st = "add" Then '--เลือก insert ลงตารางก่อนบันทึก
            If MessageBox.Show("ต้องการบันทึกข้อมูลหรือไม่", "ยืนยัน", MessageBoxButtons.YesNo, MessageBoxIcon.Question) = Windows.Forms.DialogResult.Yes Then
                Dim sql As String
                For i As Integer = 0 To dgvshow.Rows.Count - 1
                    sql = "INSERT INTO order_detail (Or_id, Printdata, Com_id)" & _
                    "VALUES('" & Me.txtOrderid.Text & "','" & Me.dtpPrint.Text & "','" & Me.txtcomid.Text & "')"
                    For g As Integer = 0 To dgvshow.Rows.Count - 1
                        Dim sql2 As String
                        sql2 = "INSERT INTO [order] (Or_id, Pro_id, Or_Quality)" & _
                        "VALUES('" & Me.txtOrderid.Text & "','" & Me.txtproid.Text & "','" & CInt(dgvshow.Rows(i).Cells(2).Value) & "')"
                        Dim com As New OleDbCommand(sql2, Cnn)
                        com.ExecuteNonQuery()
                    Next
                    Try
                        Dim cm As New OleDbCommand(sql, Cnn)

                        cm.ExecuteNonQuery()


                    Catch ex As Exception
                        MessageBox.Show("ไม่สามารถบันทึกข้อมูลได้", "ผลการดำเนินการ", MessageBoxButtons.OK, MessageBoxIcon.Warning)
                        Exit Sub
                    End Try
                Next
                MessageBox.Show("บันทึกข้อมูลเรียบร้อย", "ผลการดำเนินการ", MessageBoxButtons.OK, MessageBoxIcon.Information)
            End If

            'ElseIf st = "edit" Then
            '    If MessageBox.Show("ต้องการแก้ไขข้อมูลหรือไม่", "ยืนยัน", MessageBoxButtons.YesNo, MessageBoxIcon.Question) = Windows.Forms.DialogResult.Yes Then
            '        Dim sql As String
            '        sql = " update [order] set"
            '        sql &= " Printdate = '" & dtpPrint.Text & "',"
            '        sql &= " Pro_name = '" & txtProName.Text & "',"
            '        sql &= " Or_num= " & txtamount.Value & ","
            '        sql &= " Com_name= '" & txtComName.Text & "',"
            '        sql &= " [Tel]= '" & txtComtel.Text & "',"
            '        sql &= " Or_pt= " & CDbl(txtProPrice.Text)
            '        sql &= " Or_price= " & CDbl(txttotal.Text) & ","
            '        sql &= " where Or_id ='" & txtOrderid.Text & "'"
            '        Try

            '            Dim cm As New OleDbCommand(sql, Cnn)
            '            cm.ExecuteNonQuery()
            '            MessageBox.Show("แก้ไขข้อมูลเรียบร้อยแล้ว", "ผลการดำเนินการ", MessageBoxButtons.OK, MessageBoxIcon.Information)
            '        Catch ex As Exception
            '            MessageBox.Show("ไม่สามารถแก้ไขข้อมูลได้", "ผลการดำเนินการ", MessageBoxButtons.OK, MessageBoxIcon.Warning)
            '        End Try
            '    End If

            'ElseIf st = "del" Then
            '    If MessageBox.Show("ต้องการลบข้อมูลหรือไม่", "ยืนยัน", MessageBoxButtons.YesNo, MessageBoxIcon.Question) = Windows.Forms.DialogResult.Yes Then
            '        Dim sql As String
            '        sql = "delete from [order] where or_id ='" & txtOrderid.Text & "'"
            '        Try

            '            Dim cm As New OleDbCommand(sql, Cnn)
            '            cm.ExecuteNonQuery()
            '            MessageBox.Show("ลบข้อมูลเรียบร้อยแล้ว", "ผลการดำเนินการ", MessageBoxButtons.OK, MessageBoxIcon.Information)
            '        Catch ex As Exception
            '            MessageBox.Show("ไม่สามารถลบข้อมูลได้", "ผลการดำเนินการ", MessageBoxButtons.OK, MessageBoxIcon.Warning)
            '        End Try
            '    End If
        End If
        'showdata()
        'If ds.Tables("data").Rows.Count = 0 Then
        Clear()
        'Else
        'detaildata(0)
        'End If
    End Sub

ขึ้น Error แบบนี้
for


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-03-02 14:33:15 By : erlnw001
 


 

No. 5



โพสกระทู้ ( 3,950 )
บทความ ( 23 )



สถานะออฟไลน์
Facebook

555
เหมือนจะมี ID ด้วยนะครับ
"INSERT INTO [order] (Or_id, Pro_id, Or_Quality)"
ไม่ยักกะมี ID

แนะนำให้ใช้ csharp datasource wizard ลองดูครับ
https://www.thaicreate.com/community/csharp-datasource-wizard.html

ง่ายๆดีใช้งานไม่ยาก SQL Insert Update ก็ง่ายครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-03-02 15:14:20 By : lamaka.tor
 


 

No. 6



โพสกระทู้ ( 276 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 5 เขียนโดย : lamaka.tor เมื่อวันที่ 2016-03-02 15:14:20
รายละเอียดของการตอบ ::
คือ id ตั้ง เป็น auto น่ะครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-03-02 15:40:55 By : erlnw001
 


 

No. 7



โพสกระทู้ ( 3,950 )
บทความ ( 23 )



สถานะออฟไลน์
Facebook

ลองเปลี่ยนเป็น

Code (VB.NET)
sql2 = "INSERT INTO [order] (Or_id, Pro_id, Or_Quality)" & _
"VALUES('" & CInt(Me.txtOrderid.Text) & "','" & CInt((Me.txtproid.Text) & "','" & CInt(dgvshow.Rows(i).Cells(2).Value) & "')"


เปลี่ยน string เป็น Int
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-03-02 16:21:37 By : lamaka.tor
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : ขอสอบถามเรื่องการ insert 2 ตาราง มันบันทึกลงแค่ตารางเดียวครับ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: Voake, Comcube, รับทำเว็บไซต์ รับเขียนโปรแกรม

Load balance : Server 05
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2019 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 , 08-9968-0655 อัตราราคา คลิกที่นี่