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

Registered : 109,037

HOME > .NET Framework > Forum > ผมต้องการบันทึกข้อมูลจาก Datagridview เซฟลง ฐานข้อมูล MsAccess ครับ โค้ด VB



 

ผมต้องการบันทึกข้อมูลจาก Datagridview เซฟลง ฐานข้อมูล MsAccess ครับ โค้ด VB

 



Topic : 110846



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



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




ช่วยด้วยครับ บันทึกข้อมูลจาก Datagridview แล้วไม่ลง Access ครับ

Private Sub SaveToAccess()
        ' MessageBox.Show("บันทึกสินค้าแล้วคะ", "คำยืนยัน", MessageBoxButtons.OK)
        tr = Conn.BeginTransaction()
        Try
            sb.Remove(0, sb.Length)
            sb.Append("INSERT INTO Sales (sale_ids,cus_ids,pro_ids,pro_name,emp_ids,date_sales,total_s)")
            sb.Append(" VALUES (@sale_ids,@cus_ids,@pro_ids,@pro_name,@emp_ids,@date_sales,@total_s)")
            Dim sqlAdd As String
            sqlAdd = sb.ToString()

            For i As Integer = 0 To DataGridView1.RowCount - 1
                If Not DataGridView1.Rows(i).IsNewRow Then
                    With Com
                        .CommandText = sqlAdd
                        .CommandType = CommandType.Text
                        .Connection = Conn
                        .Transaction = tr
                        .Parameters.Add("@sale_ids", OleDbType.VarChar).Value = DataGridView1.Rows(i).Cells(0).Value
                        .Parameters.Add("@cus_ids", OleDbType.VarChar).Value = DataGridView1.Rows(i).Cells(1).Value
                        .Parameters.Add("@pro_ids", OleDbType.VarChar).Value = DataGridView1.Rows(i).Cells(2).Value
                        .Parameters.Add("@pro_name", OleDbType.VarChar).Value = DataGridView1.Rows(i).Cells(3).Value
                        .Parameters.Add("@emp_ids", OleDbType.VarChar).Value = DataGridView1.Rows(i).Cells(4).Value
                        .Parameters.Add("@date_sales", OleDbType.VarChar).Value = DataGridView1.Rows(i).Cells(5).Value
                        .Parameters.Add("@total_s", OleDbType.VarChar).Value = DataGridView1.Rows(i).Cells(6).Value

                        .ExecuteNonQuery()
                        .Parameters.Clear()
                    End With
                End If
            Next

            tr.Commit()
            'MessageBox.Show("เพิ่มพนักงานใหม่ เรียบร้อยแล้ว !!!", "ผลการทำงาน", MessageBoxButtons.OK, MessageBoxIcon.Information)
            MessageBox.Show("บันทึกข้อมูลเรียบร้อยแล้ว", "ข้อความ", MessageBoxButtons.OK, MessageBoxIcon.None)
        Catch ex As Exception
            'MessageBox.Show("คุณป้อนรหัสพนักงานซ้ำ !!!", "ผลการทำงาน", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
            tr.Rollback()
        End Try
    End SubCode (VB.NET)


จะต้องแก้ยังไงบ้างครับ ขอบคุณครับ



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







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2014-08-24 14:28:02 By : Ballriffer View : 2677 Reply : 7
 

 

No. 1



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



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


เซฟทีละหลาย ๆ เรคคอร์ดครับ






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-08-24 14:29:01 By : Ballriffer
 


 

No. 2



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



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


ถ้าคุณใช้ >=.NET 4.0 และ SQL Server 2008(R2)

และผมต้องการ Insert ข้อมูลแค่ 2 Columns เท่านั้น

Code (VB.NET)
Dim sb As New StringBuilder()
For i As Integer = 0 To DataGridView1.RowCount - 1
    sb.Append("(" & "'pencil'" & ", " & "1200.25" & "),")
Next

Dim strTricks As XCData =
    <![CDATA[
      INSERT
      INTO 
      Sales (pro_name, total_s) Values {0}
    ]]>

Dim strSQL As String = String.Format(strTricks.Value, sb.Remove(sb.Length - 1, 1).ToString())
...
...
...



OleDb และ ODBC ใช้ชื่อพารามิเตอร์ไม่ได้ครับ มันต้องเป็นแบบนี้ครับ
Code (VB.NET)
Insert into Sales (pro_name, total_s) Values (?, ?)
Parameters.Add("@pro_name", OleDbType.VarChar).Value = "pencil" 'มันเป็นข้อความ
Parameters.Add("@total_s", OleDbType.Double).Value = 1200.25 'มันเป็นจำนวนตัวเลข



ประวัติการแก้ไข
2014-08-24 16:48:56
2014-08-24 16:51:06
2014-08-24 16:52:43
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-08-24 16:41:39 By : หน้าฮี
 

 

No. 3



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



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


จาก #NO 2 บรรทัดที่ 6 - 11 ทำไมผมถึงใช้แบบนี้
เหตุผล : SQL Query ของผมบางอัน มันยาวเฟื้อยเลยครับ ยาว 7-8 หน้ากระดาษครับ (คำนวนต้นทุน)

ถ้าผมใช้การเชื่อมต่อสตริง เช่น & หรือ StringBuilder() มันไม่ไหวครับ (งงตายเลย)
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-08-24 16:58:52 By : หน้าฮี
 


 

No. 4



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



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


ขอโทดนะครับ พอดีมือใหม่มาก ๆ เลยครับ งงอะ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-08-24 17:48:27 By : Ballriffer
 


 

No. 5



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



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


eeee

รูปแบบการทำงานตามภาพเลยครับ ตอนนี้ผมเก็บข้อมูลรายการจาก textbox ให้มาลงใน datagridview ได้แล้วครับ

ทีนี้ผมก็ต้องการที่จะเก็บข้อมูลการสั่งซื้อภายใน datagridview มาลงฐานข้อมูล access ครับ

โดยเก็บทีละหลาย ๆ รายการครับ

ตัวอย่างในเว็บ ผมเจอแต่ sql ครับ ลองแปลงแล้วแต่ไม่ได้ เพราะความเข้าใจยังไม่มากครับ

ช่วยหน่อยนะ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-08-24 17:54:52 By : Ballriffer
 


 

No. 6



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



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


Code (VB.NET)
Private Sub SaveToAccess()
        ' MessageBox.Show("บันทึกสินค้าแล้วคะ", "คำยืนยัน", MessageBoxButtons.OK)
        tr = Conn.BeginTransaction()
        Try
            sb.Remove(0, sb.Length)
            sb.Append("INSERT INTO Sales (sale_ids,cus_ids,pro_ids,pro_name,emp_ids,date_sales,total_s) ")
            sb.Append("VALUES (?, ?, ?, ?, ?, ?, ?)")

            Dim sqlAdd As String
            sqlAdd = sb.ToString()

            For i As Integer = 0 To DataGridView1.RowCount - 1
                If Not DataGridView1.Rows(i).IsNewRow Then
                    With Com
                        .CommandText = sqlAdd
                        .CommandType = CommandType.Text
                        .Connection = Conn
                        .Parameters.Clear()
                        .Transaction = tr
                        .Parameters.Add("@sale_ids", OleDbType.VarChar).Value = DataGridView1.Rows(i).Cells(0).Value
                        .Parameters.Add("@cus_ids", OleDbType.VarChar).Value = DataGridView1.Rows(i).Cells(1).Value
                        .Parameters.Add("@pro_ids", OleDbType.VarChar).Value = DataGridView1.Rows(i).Cells(2).Value
                        .Parameters.Add("@pro_name", OleDbType.VarChar).Value = DataGridView1.Rows(i).Cells(3).Value
                        .Parameters.Add("@emp_ids", OleDbType.VarChar).Value = DataGridView1.Rows(i).Cells(4).Value
                        .Parameters.Add("@date_sales", OleDbType.Date).Value = CDate(DataGridView1.Rows(i).Cells(5).Value)
                        .Parameters.Add("@total_s", OleDbType.Double).Value = CDbl(DataGridView1.Rows(i).Cells(6).Value)

                        .ExecuteNonQuery()

                    End With
                End If
            Next

            tr.Commit()
            'MessageBox.Show("เพิ่มพนักงานใหม่ เรียบร้อยแล้ว !!!", "ผลการทำงาน", MessageBoxButtons.OK, MessageBoxIcon.Information)
            MessageBox.Show("บันทึกข้อมูลเรียบร้อยแล้ว", "ข้อความ", MessageBoxButtons.OK, MessageBoxIcon.None)
        Catch ex As Exception
            MessageBox(ex.Message)
            'MessageBox.Show("คุณป้อนรหัสพนักงานซ้ำ !!!", "ผลการทำงาน", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
            tr.Rollback()
        End Try
    End Sub



ประวัติการแก้ไข
2014-08-25 04:33:39
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-08-25 04:31:37 By : หน้าฮี
 


 

No. 7



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



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


ขอบคุณนะครับ ได้แล้ว ผมก็งงว่า VALUE คืออะไร มานึกได้อีกที อ่อ มันก็คือค่าแต่ละเซลของ Datagridview นั้่นเองครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-08-29 11:11:40 By : Ballriffer
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : ผมต้องการบันทึกข้อมูลจาก Datagridview เซฟลง ฐานข้อมูล MsAccess ครับ โค้ด VB
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ 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: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

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