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,036

HOME > .NET Framework > Forum > สอบถาม บันทึกการขายสินค้า listview ลงฐานข้อมูล access ใช้ vb.net



 

สอบถาม บันทึกการขายสินค้า listview ลงฐานข้อมูล access ใช้ vb.net

 



Topic : 112128



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



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




ฐานข้อมูล access

ตาราง access มี 3 ตาราง
คือ 1. ตาราง TableOrder มี Order_ID , Order_Date
2. ตาราง TableOrderdetail มี Order_ID , Product_ID , SalePrice , Quantity , TotalSal
3. ตาราง TableProduct มี Product_ID , Product_Name , CostPrice , SalePrice , QtyStock

Query โดย มี
Order_ID , Order_Date , Product_ID , Product_Name , SalePrice , Quantity , TotalSal

( Order_ID และ Order_Date มาจากตาราง TableOrder )
( Product_ID , SalePrice , Quantity , TotalSalมาจากตาราง TableOrderdetail )
( Product_Name มาจากตาราง TableProduct)



โค้ดบันทึก listview ลงฐานข้อมูล access

Code (VB.NET)
Private Sub ButtonSAVE_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonSAVE.Click


        If ListViewOrder.Items.Count > 0 Then

            If MessageBox.Show("คุณต้องการบันทึกรายการสั่งซื้อสินค้า ใช่หรือไม่?", "คำยืนยัน", MessageBoxButtons.YesNo, MessageBoxIcon.Information
                              ) = Windows.Forms.DialogResult.Yes Then



                tr = Conn.BeginTransaction()
                sb.Remove(0, sb.Length)
                sb.Append("INSERT INTO Tableorder (Order_ID,Order_Date)")
                sb.Append("VALUES (" & TextBoxReceiptid.Text.Trim().Replace("", "") & ",")
                sb.Append("" & DateTime.Today & ")")
                Dim sqlSave As String = sb.ToString

                Dim com = Conn.CreateCommand()
                With com
                    .CommandType = CommandType.Text
                    .CommandText = sqlSave
                    .Connection = Conn
                    .Transaction = tr
                    .ExecuteNonQuery()

                End With

                sb.Remove(0, sb.Length)
                sb.Append("SELECT TOP 1 Order_ID FROM TableOrder")
                sb.Append("TableOrder BY Order_ID DESC")
                sqlSave = sb.ToString()

                Dim LastOrder_ID As Integer
                With com
                    .CommandType = CommandType.Text
                    .CommandText = sqlSave
                    .Connection = Conn
                    dr = .ExecuteReader()
                    If dr.HasRows Then
                        dr.Read()
                        LastOrder_ID = dr.GetInt32(dr.GetOrdinal("Order_ID"))
                    Else
                        LastOrder_ID = 10000
                    End If
                End With


                Dim i As Integer
                For i = 0 To ListViewOrder.Items.Count - 1
                    sb.Remove(0, sb.Length)
                    sb.Append("INSERT INTO [TableOrderDetails] (Order_ID,Product_ID,")
                    sb.Append("SalePrice,Quantity,TotalSale)")
                    sb.Append("VALUES (" & LastOrder_ID & ",")
                    sb.Append("" & ListViewOrder.Items(i).SubItems(0).Text & ",")
                    sb.Append(ListViewOrder.Items(i).SubItems(1).Text & ",")
                    sb.Append(ListViewOrder.Items(i).SubItems(4).Text & ",")
                    sb.Append(ListViewOrder.Items(i).SubItems(5).Text & ",")
                    sb.Append(ListViewOrder.Items(i).SubItems(6).Text & ",0)")
                    sqlSave = sb.ToString()
                    With com
                        .CommandText = sqlSave
                        .ExecuteNonQuery()

                    End With
                Next

                tr.Commit()
                MessageBox.Show("บันทึกรายการสั่งซื้อสินค้าเรียบร้อยแล้ว !!!", "ผลการทำงาน", MessageBoxButtons.OK, MessageBoxIcon.Information)
                ListViewOrder.Clear()
                ClearProductData()
                textboxNetTotal.Text = "0"

            End If
        End If

    End Sub
End Class





โค้ด ผิดตรง tr = Conn.BeginTransaction() อยากทราบว่าทำฐานข้อมูลผิด หรือว่าผิดตรงไหนช่วยแนะนำ ที

ขึ้นว่า Object reference not set to an instance of an object.



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









ประวัติการแก้ไข
2014-10-23 23:44:46
2014-10-23 23:46:33
2014-10-23 23:46:50
2014-10-23 23:46:52
Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2014-10-23 23:41:27 By : niceza07 View : 4382 Reply : 7
 

 

No. 1



โพสกระทู้ ( 9,583 )
บทความ ( 2 )



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


ตัวแปร conn ไม่ได้ถูกประกาศไว้ครับ ต้องประกาศตัวแปร conn ก่อนครับ






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-10-24 07:27:57 By : Chaidhanan
 


 

No. 2



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



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


Code (VB.NET)
Inherits System.Windows.Forms.Form
    Const database_file As String = ".\DBMarketProgram.mdb"
    Dim strconnection As String = "Provider = Microsoft.jet.OLEDB.4.0;" & "Data Source =" & database_file
    Dim cn As New OleDb.OleDbConnection(strconnection)
    Dim da As New OleDb.OleDbDataAdapter
    Dim Conn As DbConnection
    Dim dr As DbDataReader
    Dim tr As DbTransaction


ผมได้ประกาศไว้แล้วครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-10-24 12:27:33 By : niceza07
 

 

No. 3



โพสกระทู้ ( 9,583 )
บทความ ( 2 )



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


Dim Conn As DbConnection แบบนี้ยังไม่คอนเนคกับ database เลยนะครับ แค่ประกาศชนิดตัวแปรเฉย ไม่มีค่าอะไร เป็นแค่ NULL


Dim Conn As DbConnection = new DBConnection( connect กับ อะไร ก็ใส่เข้าไปครับ )



ปล. เห็นเปิด cn olddb แล้ว น่าจะใช้ cn แทน conn ได้เลยนะครับ

มันเป็น คลาส ระดับเดียวกันไม่ใช่เหรอครับ (ถ้าจำไม่ผิด ไม่ได้เขียนนานแล้ว)


ประวัติการแก้ไข
2014-10-24 14:23:35
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-10-24 14:17:26 By : Chaidhanan
 


 

No. 4

Guest


ถ้าจะประกาศแบบนั้นทำไมไม่ใช้ cn ไปเลยล่ะ

แล้วยังใช้ transaction ได้ open connection ทิ้งไว้ไหม ???
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-10-24 15:40:14 By : ห้ามตอบเกินวันละ 2 กระทู้
 


 

No. 5



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



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


ไปลองทำมาแล้วครับ แต่ว่า ยังติดปัญหาอยู่

ตามภาพ กลายเป็นผิดตรงนี้แทน

ผิด


นี้คือประกาศตัวแปร
Code (VB.NET)
    Inherits System.Windows.Forms.Form
    Const database_file As String = ".\DatabaseProgramMarKet.mdb"
    Dim strconnection As String = "Provider = Microsoft.jet.OLEDB.4.0;" & "Data Source =" & database_file
    Dim cn As New OleDb.OleDbConnection(strconnection)
    Dim da As New OleDb.OleDbDataAdapter
    Dim ds As New DataSet
    Dim dr As DbDataReader
    Dim tr As DbTransaction
    Dim dc As New OleDbCommand
    Dim strConn As String = ""
    Dim sb As New StringBuilder()
    Dim IsFind As Boolean = False
    Dim IsFindProduct As Boolean = False
    Dim WithEvents objCurrencymanager As CurrencyManager



ส่วนนี้ คือ code บันทึก
Code (VB.NET)
 If ListViewOrder.Items.Count > 0 Then
        End If
        If MessageBox.Show("คุณต้องการบันทึกรายการสั่งซื้อสินค้า ใช่หรือไม่?", "คำยืนยัน", MessageBoxButtons.YesNo, MessageBoxIcon.Information
                          ) = Windows.Forms.DialogResult.Yes Then

            tr = cn.BeginTransaction()
            sb.Remove(0, sb.Length)
            sb.Append("INSERT INTO Tableorder (Order_ID,Order_Date)")
            sb.Append("VALUES (" & TextBoxReceiptid.Text.Trim().Replace("", "") & ",")
            sb.Append("" & DateTime.Today & ")")
            Dim sqlSave As String = sb.ToString


            Dim com = cn.CreateCommand()
            With com
                .CommandType = CommandType.Text
                .CommandText = sqlSave
                .Connection = cn
                .Transaction = CType(tr, OleDbTransaction)
                .ExecuteNonQuery()

            End With
            tr.Commit()

            sb.Remove(0, sb.Length)
            sb.Append("SELECT TOP 1 Order_ID FROM TableOrder")
            sb.Append("TableOrder BY Order_ID DESC")
            sqlSave = sb.ToString()

            Dim LastOrder_ID As Integer
            With com
                .CommandType = CommandType.Text
                .CommandText = sqlSave
                .Connection = cn
                dr = .ExecuteReader()
                If dr.HasRows Then
                    dr.Read()
                    LastOrder_ID = dr.GetInt32(dr.GetOrdinal("Order_ID"))
                Else
                    LastOrder_ID = 10003
                End If
            End With
            dr.Close()

            Dim i As Integer
            For i = 0 To ListViewOrder.Items.Count - 1
                sb.Remove(0, sb.Length)
                sb.Append("INSERT INTO [TableOrderDetails] (Order_ID,Product_ID,")
                sb.Append("SalePrice,Quantity,TotalSale)")
                sb.Append("VALUES (" & LastOrder_ID & ",")
                sb.Append("" & ListViewOrder.Items(i).SubItems(0).Text & ",")
                sb.Append(ListViewOrder.Items(i).SubItems(1).Text & ",")
                sb.Append(ListViewOrder.Items(i).SubItems(4).Text & ",")
                sb.Append(ListViewOrder.Items(i).SubItems(5).Text & ",")
                sb.Append(ListViewOrder.Items(i).SubItems(6).Text & ",0)")
                sqlSave = sb.ToString()
                With com
                    .CommandText = sqlSave
                    .ExecuteNonQuery()

                End With
            Next


            MessageBox.Show("บันทึกรายการสั่งซื้อสินค้าเรียบร้อยแล้ว !!!", "ผลการทำงาน", MessageBoxButtons.OK, MessageBoxIcon.Information)
            ListViewOrder.Clear()
            ClearProductData()
            textboxNetTotal.Text = "0"
            cn.Close()


        End If



ทำมาหลายวันแล้วยังไม่ได้ ขอคำแนะนำด้วยครับ ผิดตรงไหน ช่วยอธิบายให้เข้าใจทีครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-10-28 23:38:48 By : niceza07
 


 

No. 6



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



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


ตอนนี้ทำได้แล้วในการ insert 2 table
แต่ตอนนี้ ติดปัญหา ด้านล่าง รบกวนผู้รู้ช่วยหน่อยครับ

error
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-10-30 19:05:35 By : niceza07
 


 

No. 7



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



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

IIf(TextBox.Text.Length < 0, Convert.ToDouble(0), Convert.ToDouble(TextBox.Text.Length))
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-10-31 00:55:11 By : lamaka.tor
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : สอบถาม บันทึกการขายสินค้า listview ลงฐานข้อมูล access ใช้ vb.net
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ 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 04
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 อัตราราคา คลิกที่นี่