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

HOME > .NET Framework > Forum > อยากเคลียร์ข้อมูลจาก Datagridview แล้วเพิ่มข้อมูลใหม่โดยไม่มีข้อมูลเก่ามาแสดง [ระบบร้านค้า]



 

อยากเคลียร์ข้อมูลจาก Datagridview แล้วเพิ่มข้อมูลใหม่โดยไม่มีข้อมูลเก่ามาแสดง [ระบบร้านค้า]

 



Topic : 133171



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



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



Code (VB.NET)
Imports System.Data.OleDb

Public Class Mainmenu
    Public constring As String = "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=" _
  & Application.StartupPath & "\JarernDB.accdb"
    Public con As New OleDbConnection
    Public sqlCommand As New OleDbCommand



    Public Sub formatGrid()
        With DataGridView1
            
            .Columns(0).HeaderText = "รหัสสินค้า"
            .Columns(1).HeaderText = "ชื่อสินค้า"
            .Columns(2).HeaderText = "หน่วยสินค้า"
            .Columns(3).HeaderText = "จำนวนสินค้าในคลัง"
            .Columns(4).HeaderText = "ราคาสินค้า"

            .Columns(0).Width = 50
            .Columns(1).Width = 150
            .Columns(2).Width = 110
            .Columns(3).Width = 80
            .Columns(4).Width = 80


        End With
    End Sub
    Public Sub formatGrid2()
        With DataGridView2

            .Columns(0).HeaderText() = "รหัสรายการ"
            .Columns(1).HeaderText() = "รหัสสินค้า"
            .Columns(2).HeaderText() = "ชื่อ"
            .Columns(3).HeaderText() = "หน่วย"
            .Columns(4).HeaderText() = "ราคา"
            .Columns(5).HeaderText() = "จำนวน"
            .Columns(6).HeaderText() = "รวม"




            .Columns(0).Width = 120
            .Columns(1).Width = 105
            .Columns(2).Width = 155
            .Columns(3).Width = 50
            .Columns(4).Width = 100
            .Columns(5).Width = 80
            .Columns(6).Width = 135

        End With
    End Sub

    Private Sub Mainmenu_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        con.ConnectionString = constring

        If con.State = ConnectionState.Closed Then
            con.Open()

        End If


        SetGrid()
        formatGrid()
        SelectPayType()
        formatGrid2()
        DataGridView2.DataSource.clear()
    End Sub

    Public Sub SetGrid()
        Dim sqlQuery As String
        Dim adapter As New OleDb.OleDbDataAdapter
        Dim ds As DataSet = New DataSet

        sqlQuery = "SELECT * FROM Tb_Product order by p_code "

        DataGridView1.Font = New Font("Arial", 13, FontStyle.Bold)




        adapter.SelectCommand = New OleDb.OleDbCommand(sqlQuery, con)
        adapter.Fill(ds)
        DataGridView1.DataSource = ds.Tables(0)

    End Sub
    Public Sub SelectPayType()
        Dim sqlQuery As String
        Dim adapter As New OleDb.OleDbDataAdapter
        Dim ds As DataSet = New DataSet
        Dim x As Integer
        Dim sumamount As Double

        sqlQuery = "SELECT * FROM Tb_pay "
            

        DataGridView2.Font = New Font("Arial", 13, FontStyle.Bold)



        adapter.SelectCommand = New OleDb.OleDbCommand(sqlQuery, con)
        adapter.Fill(ds)
        DataGridView2.DataSource = ds.Tables(0)

        For x = 0 To DataGridView2.Rows.Count - 1                   'คำนวณราคาทั้งหมด
            sumamount = DataGridView2.Rows(x).Cells(6).Value + sumamount

        Next
        TextBox1.Text = sumamount

    End Sub
    Private Sub Add_product()
        Dim sqlQuery As String


        Try
            sqlQuery = "Insert Into Tb_pay(pa_id,pa_code,pa_name,pa_unit,pa_price,pa_amount,pa_pay)Values('" & Tb_order.Text & "','" & Tb_id.Text & "','" & Tb_name.Text & "','" & Tb_unit.Text & "','" & Tb_price.Text & "','" & num_amount.Value & "','" & Tb_sum.Text & "')"
            With sqlCommand
                .CommandText = sqlQuery 'บันทึกข้อมูลใหม่
                .Connection = con
                .ExecuteNonQuery()

            End With

        Catch ex As Exception
            MsgBox(ex.ToString)
        End Try
        
    End Sub
    Private Sub Del_product()

        Dim dtAdapter As OleDb.OleDbDataAdapter
        Dim sqlQuery As String
        Dim ds As New DataTable
        sqlQuery = "DELETE * FROM Tb_pay WHERE pa_code='" & Tb_id.Text & "'"
        dtAdapter = New OleDb.OleDbDataAdapter(sqlQuery, con)
        dtAdapter.Fill(ds)




    End Sub
    Private Sub Runnumber()
        
    End Sub

    Private Sub B_Exit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles B_Exit.Click
        If MsgBox("ต้องการออกจากระบบใช่หรือไม่", vbQuestion + vbYesNo) = vbYes Then
            Me.Close()
        End If
    End Sub

    Private Sub B_Storage_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles B_Storage.Click
        warehouse.Show()
    End Sub

    Private Sub B_Search_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles B_Search.Click
        Dim sqlQuery As String
        Dim adapter As New OleDb.OleDbDataAdapter
        Dim ds As DataSet = New DataSet

        sqlQuery = "SELECT * FROM Tb_Product Where p_name  LIKE '%" & TextBox2.Text & "%'order by p_code"

        adapter.SelectCommand = New OleDb.OleDbCommand(sqlQuery, con)
        adapter.Fill(ds)
        DataGridView1.DataSource = ds.Tables(0)
    End Sub

    Private Sub DataGridView1_CellClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellClick
        Dim i As Integer
        i = DataGridView1.CurrentRow.Index

        Dim amount As Integer = DataGridView1.Item(3, i).Value.ToString
        num_amount.Maximum = amount

        Tb_id.Text = DataGridView1.Item(0, i).Value.ToString
        Tb_name.Text = DataGridView1.Item(1, i).Value.ToString
        Tb_unit.Text = DataGridView1.Item(2, i).Value.ToString
        Tb_price.Text = DataGridView1.Item(4, i).Value.ToString

        
        Tb_sum.Text = Tb_price.Text * num_amount.Value



    End Sub


    Private Sub ToolStripButton1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripButton1.Click
        Buyproduct.Show()

    End Sub


    Private Sub B_submit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles B_submit.Click
        Dim sqlQuery As String
        Dim ds As New DataTable
        Dim dtAdapter As OleDb.OleDbDataAdapter


        sqlQuery = "SELECT * FROM Tb_Product WHERE p_code='" & Tb_id.Text & "'"
        dtAdapter = New OleDb.OleDbDataAdapter(sqlQuery, con)
        dtAdapter.Fill(ds)
        If Len(num_amount.Value) = 0 Or Len(Tb_id.Text) = 0 Then
            MsgBox("กรุณาใส่จำนวน หรือ เลือกสินค้า", vbInformation)
            Exit Sub
        End If
        Try
            sqlQuery = "Update  Tb_Product Set p_amount = p_amount- '" & num_amount.Value & "' Where p_code='" & Tb_id.Text & "'"

            With sqlCommand
                .CommandText = sqlQuery 'แก้ไขข้อมูล
                .Connection = con
                .ExecuteNonQuery()
            End With



        Catch ex As Exception
            MsgBox(ex.ToString)
        End Try

        Add_product()
        SelectPayType()
        SetGrid()

    End Sub

    Private Sub B_cancel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles B_cancel.Click
        Dim sqlQuery As String
        Dim ds As New DataTable
        Dim dtAdapter As OleDb.OleDbDataAdapter

        sqlQuery = "SELECT * FROM Tb_pay WHERE pa_code='" & Tb_id.Text & "'"
        dtAdapter = New OleDb.OleDbDataAdapter(sqlQuery, con)
        dtAdapter.Fill(ds)

        Try
            sqlQuery = "Update  Tb_Product Set p_amount = p_amount+ '" & num_amount.Value & "' Where p_code='" & Tb_id.Text & "'"

            With sqlCommand
                .CommandText = sqlQuery 'แก้ไขข้อมูล
                .Connection = con
                .ExecuteNonQuery()
            End With



        Catch ex As Exception
            MsgBox(ex.ToString)
        End Try
        num_amount.Value = 0
        Del_product()
        SelectPayType()
        SetGrid()
    End Sub

    Private Sub DataGridView2_CellClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView2.CellClick

        Dim i As Integer
        i = DataGridView2.CurrentRow.Index
        If i = DataGridView2.RowCount - 1 Then Exit Sub




        Tb_id.Text = DataGridView2.Item(1, i).Value.ToString
        Tb_name.Text = DataGridView2.Item(2, i).Value.ToString
        Tb_unit.Text = DataGridView2.Item(3, i).Value.ToString
        Tb_price.Text = DataGridView2.Item(4, i).Value.ToString
        num_amount.Value = DataGridView2.Item(5, i).Value.ToString

    End Sub

    
    
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click




        



    End Sub
End Class




Tag : .NET, Ms Access, VB.NET







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2019-02-21 15:26:00 By : 2535466999857732 View : 209 Reply : 9
 

 

No. 1



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



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

แค่

Code (VB.NET)
DataGridView1.DataSource = ds.Tables(0)


ข้อมูลเก่าก็ไม่มีแล้วครับ

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


ปล. ลองสร้างคลาส มาใช้สำหรับจัดการ sql ดู ก็ดีครับ โค้ดในหน้านี้จะสั้นลง






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-02-21 15:36:42 By : lamaka.tor
 


 

No. 2



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



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

คือผมลองแล้วครับแต่มันก็ยังเอาข้อมูล เก่ามาแสดงตอนเพิ่มสินค้าอ่ะครับ

พอกดเคลียมันเคลียให้แต่พอกดเพิ่มสินค้าเข้าไป มันไปเอาข้อมูลสินค้าก่อนหน้ามาอ่ะครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-02-21 18:11:39 By : 2535466999857732
 

 

No. 3



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



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

ตอบความคิดเห็นที่ : 2 เขียนโดย : 2535466999857732 เมื่อวันที่ 2019-02-21 18:11:39
รายละเอียดของการตอบ ::
ช่วยเขียนขั้นตอน หรือ โฟลชาร์ต ของการกดปุ่มเพิ่ม ข้อมูลหน่อยได้ไม๊ครับ
ว่ามีขั้นตอนยังไงบ้าง



แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-02-21 18:14:58 By : lamaka.tor
 


 

No. 4



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



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

ขั้นตอนที่1
ขั้นตอนที่2
ขั้นตอนที่3
ขั้นตอนที่4
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-02-21 20:40:31 By : 2535466999857732
 


 

No. 5



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



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

ขั้นตอนการทำงาน
1.เลือกสินค้า
2.คำนวณราคาสินค้า
3.แสดงใบเสร็จ แล้วเคลียร์ข้อมูลรอขึ้นบิลใหม่

ผมอธิบายไม่ถูกจริงๆครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-02-21 20:42:10 By : 2535466999857732
 


 

No. 6



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



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

ขั้นตอน หรือ โฟลชาร์ต ของการกดปุ่มเพิ่ม แค่นั้นก็พอ เพราะเราจะเจาะจงว่า เวลาเพิ่มข้อมูลจะต้องมีขั้นตอน หรือ ให้เกิด อะไรขึ้นบ้าง
เขียนเป็น บรรทัด ต่อ บรรทัด เหตุการณ์ ต่อ เหตุการณ์

ลองทำดูครับ


การฝึกมองรายละเอียดปลีกย่อยพวกนี้จะช่วยให้ การเขียนโค้ดง่ายขึ้นเยอะ มาก
เพราะ มือใหม่ส่วนมาก ที่เขียนโค้ดไม่ได้ทั้งๆที่ มีความรู้เรื่องการเขียนโค้ดอยู่แล้ว แต่กลับเขียนโค้ดออกมาไม่ได้
เพราะว่า ส่วนใหญ่ไม่ค่อยเขียนโฟลชาร์ต หรือ ขั้นตอน ของเหตุการณ์ ที่มันจะเกิดขึ้น

ในทางกลับกัน ต่อให้ ไม่ค่อยมีความรู้เรื่องโค้ด แต่ สามารถเขียน
ขั้นตอนต่างๆขึ้นมาได้ เราจะสามารถ หาโค้ดมาใส่ได้ง่ายขึ้นครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-02-21 22:28:24 By : lamaka.tor
 


 

No. 7



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



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

มายกตัวอย่าง ง่ายๆกันซักหน่อย

เช่น เราจะ เพิ่มข้อมูลในฐานข้อมูล ก็ใช้ ExecuteNonQuery ของ Command ได้เช่นกัน

ถ้าลองเขียนขั้นตอนๆคร่าวๆ ก็จะได้ประมาณนี้

1. open connection หรือเช็คว่า connection อยู่ใน สถานะ Open ไว้หรือยัง
พอเราเขียนออกมาแบบนี้ แน่นอน เราต้องมาการเช็ค Connection
อาจจะแค่ ใช้ if เพื่อ เช็ค หรือ ใช้ using สำหรับการ เปิด ปิด ง่ายๆ แล้วแต่ความถนัด

2. เช็คก่อนว่ามี ข้อมูล ที่จะเพิ่ม ในฐานข้อมูลหรือปล่าว ถ้ามี อาจจะเปลี่ยนเป็น Update แทน ไม่มีก็ Insert ไป
แล้วก็จะได้ sql ที่เป็น string มาตัวหนึ่ง จากการเช็คในข้อนี้
พอเราเขียนออกมาแบบนี้ แน่นอน เราต้องมาการเช็ค sql และ สร้าง sql เพื่อส่งค่าไปให้ Command.ExecuteNonQuery
เช่น

Code (VB.NET)
Dim count As Int32
query = "SELECT * FROM  table WHERE ID = " & txtID.text
Dim cmd As New SqlCommand(sql, cnn)
            cmd.Connection.Open()
    count = cmd.ExecuteNonQuery
if count  >=1 then
   sql = "update    table SET name = " & txtName.text &  " WHERE ID = " & txtID.text
else
   sql = "Insert into  table values(" & txtID.text &"," &   txtName.text & ")"
end if



3. เรียกใช้ ExecuteNonQuery จาก sql ที่ได้
Code (VB.NET)
cmd As New SqlCommand(sql, cnn)
            cmd.Connection.Open()
           cmd.ExecuteNonQuery()


4. ปิดหน้าฟอร์มไปเลย
Code (VB.NET)
   Me.Close()


คร่าวๆ ก็ประมาณนี้ จะเห็นได้ว่า เพียงแค่ผมเกี่นหัวข้อไป ก็สามารถ ดึงเอา โค้ด จากความรู้พื้นฐานออกมาใช้ได้อย่างง่ายดาย
ไม่ว่าจะเป็น IF SqlCommand(query, con).ExecuteNonQuery Me.Close()
มันจะมา แบบบรรทัดต่อบรรทัด กันเลยทีเดียว

ยิ่งคนที่เขียนขั้นตอนได้ละเอียกมากเท่าไหร่ยิ่งมองโค้ดไปไกลมากขึ้นเท่านั้น และยังมององค์รวมทั้งหน้า หรือทั้งโปรเจคได้อีกด้วย


ยกตัวอย่างเช่น เราต้องใช้งาน sql และ Connection บ่อยๆ แถมใช้หลายๆฟอร์ม ก็ลองสร้าง คลาสโมดูล ขึ้นมา เพื่อมาจัดการกับมัน เช่น

Code (VB.NET)
Module Module1
    Public Sub SQLExecuteNonQuery(ByVal sql As String, Optional ByVal strConn As String = "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=" _
& Application.StartupPath & "\JarernDB.accdb")
        Using cnn As New SqlConnection(strConn)
            Dim cmd As New SqlCommand(sql, cnn)
            cmd.Connection.Open()
            cmd.ExecuteNonQuery()

        End Using
    End Sub
End Module


เพียงแค่นี้เราก็เปิดจากฟอร์มไหน ก็ได้

เช่น

Code (VB.NET)
Module1.SQLExecuteNonQuery("Insert into  table values(" & txtID.text &"," &   txtName.text & ")")


เราก็ไม่ต้องเขียนโค้ดยาวๆ ทุกครั้งที่เราเรียกใช้นั่นเอง


สุดท้าย สำคัญคือ การที่เราเข้าใจขั้นตอนการทำงานทุกขั้นตอนของโปรแกรม
หากเข้าใจ โค้ดมันจะมาเอง
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-02-22 00:49:05 By : lamaka.tor
 


 

No. 8



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



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


where จากรหัสรายการ ก็น่าจะได้นะครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-02-22 10:27:56 By : sent
 


 

No. 9



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



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

TOR_CHEMISTRY
ขอบคุณมากนะครับเดี๋ยวผมลองก่อนนะครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-02-22 22:17:59 By : 2535466999857732
 

   

ค้นหาข้อมูล


   
 

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