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

Registered : 108,456

HOME > .NET Framework > Forum > การสร้างฟอร์มด้วย DataGridView เบื้องต้นแบบ Step by Step [ VB.NET (Windows App+SQL Server) ]



 

การสร้างฟอร์มด้วย DataGridView เบื้องต้นแบบ Step by Step [ VB.NET (Windows App+SQL Server) ]

 



Topic : 053293



โพสกระทู้ ( 1,346 )
บทความ ( 1 )



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




การสร้างฟอร์มด้วย DataGridView เบื้องต้นแบบ Step by Step

Development Tool: Visual Studio 2010 Express
Database Engine: MS SQL Server 2005 Express

ตารางที่เกี่ยวข้องกับบทความนี้
1. ExpType เก็บประเภทค่าใช้จ่าย
มี ExpTypeID เป็นคีย์หลัก ชนิดข้อมูลเป็น Integer
ข้อมูลในตาราง ExpType เป็นดังนี้

ข้อมูลตาราง ExpType

2. MExpense ตารางค่าใช้จ่าย
ExpID เป็นคีย์หลัก ชนิดข้อมูลเป็น Integer, AutoNumber
มีโครงสร้างดังนี้

โครงสร้างตาราง MExpense



Tag : .NET, Ms SQL Server 2005, Win (Windows App), VS 2010 (.NET 4.x)







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2010-12-17 10:46:20 By : หางอึ่ง View : 48106 Reply : 31
 

 

No. 1



โพสกระทู้ ( 1,346 )
บทความ ( 1 )



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


ขั้นตอนเริ่มต้น
เราต้องสร้าง DataSet ใหม่ขึ้นมาก่อน
คลิกขวาที่ชื่อ Project (WindowApplication1) แล้วก็เลือก "Add > New Item..."

T01-02 Create New Dataset

ใส่ชื่อ DataSet ในที่นี้ชื่อ MyDataSet แล้วกดปุ่ม "Add"

T01-03 Add MyDataSet


จะได้หน้าจอ MyDataSet ว่างเปล่า เพื่อสร้าง TableAdapter ต่อไป






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-12-17 10:52:34 By : หางอึ่ง
 


 

No. 2



โพสกระทู้ ( 1,346 )
บทความ ( 1 )



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


ขั้นตอนต่อมาคือการสร้าง TableAdapter
ต้องสร้าง 2 ตัวคือ ExpTypeTableAdapter และ MExpenseTableAdapter

เริ่มต้นที่ตัวแรกคือ ExpTypeTableAdapter
คลิกขวา เลือก "Add > Table Adapter..."

T01-04 Add New TableAdapter

จะเห็นหน้าจอให้เลือก Data Connection
กรณีที่ได้สร้างไว้แล้วให้เลือก แล้วกดปุ่ม Next ได้เลย
แต่ถ้ายังไม่เลือกให้กดปุ่ม "New Connection..."

T01-05 Create TableAdapter.JPG
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-12-17 10:56:44 By : หางอึ่ง
 

 

No. 4



โพสกระทู้ ( 1,346 )
บทความ ( 1 )



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


หน้าจอการสร้าง DataConnection อาจจะแตกต่างกันไป
เนื่องจากผมใช้ VS2010 Express
หน้าตาจึงได้ประมาณนี้

T01-06 Create New Connection

ให้ลองกดปุ่ม Test Connection เพื่อตรวจสอบว่าใช้งานได้

T01-07 Test Connection

จากนั้นก็กดปุ่ม OK เพื่อกลับไปหน้าจอสร้าง TableAdapter กันต่อ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-12-17 11:00:20 By : หางอึ่ง
 


 

No. 5



โพสกระทู้ ( 1,346 )
บทความ ( 1 )



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


เลือก DataConnection แล้วกดปุ่ม Next

T01-08 Create TableAdapter Step1
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-12-17 11:02:12 By : หางอึ่ง
 


 

No. 6



โพสกระทู้ ( 1,346 )
บทความ ( 1 )



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


เลือก Use SQL Statement

T01-08 Create TableAdapter Step2

คลิก Advanced Options

T01-08 Create TableAdapter Step3

ในที่นี้ผมขอปิด Use optimistic concurrency

T01-08 Create TableAdapter Step4
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-12-17 11:06:35 By : หางอึ่ง
 


 

No. 7



โพสกระทู้ ( 1,346 )
บทความ ( 1 )



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


พิมพ์คำสั่งเลือกข้อมูลตาราง ExpType

T01-08 Create TableAdapter Step5

หน้านี้ก็ตามค่า Default

T01-08 Create TableAdapter Step6

แสดงผลว่าสร้างเสร็จแล้ว

T01-08 Create TableAdapter Step7

จะได้ ExpTypeAdapter และ ExpType DataTable

T01-09 ExpTypeTableAdapter
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-12-17 11:10:18 By : หางอึ่ง
 


 

No. 8



โพสกระทู้ ( 1,346 )
บทความ ( 1 )



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


สร้าง MExpenseTableAdapter
ซึ่งมีขั้นตอนเหมือนกับ ExpTypeTableAdapter ทุกอย่าง
ยกเว้นหน้านี้

T01-10 Create MExpenseTableAdapter

เมื่อสร้างเสร็จจะได้ประมาณนี้

T01-11 After Create MExpenseTableAdapter
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-12-17 11:13:16 By : หางอึ่ง
 


 

No. 9



โพสกระทู้ ( 1,346 )
บทความ ( 1 )



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


ที่ Data Sources View ควรจะเป็นตามภาพนี้

T01-12 DataSources View

หลังจากสร้าง TableAdapter เสร็จแล้ว
ก็เป็นการสร้างฟอร์ม
คลิกขวาที่ชื่อ Project แล้วเลือก "Add > Window Form"

T01-13 Create Form Step 01

ใส่ชื่อฟอร์ม

T01-13 Create Form Step 02
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-12-17 11:17:38 By : หางอึ่ง
 


 

No. 10



โพสกระทู้ ( 1,346 )
บทความ ( 1 )



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


ลาก MExpense จาก MyDataSet มาใส่ในฟอร์ม

T01-13 Create Form Step 04

VS จะสร้าง DataGridView มาให้ทันที
พร้อมกับ Component ที่อยู่ข้างล่าง

T01-13 Create Form Step 05

ขอเปลี่ยนชื่อ Component เป็นดังนี้

T01-13 Create Form Step 06
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-12-17 11:21:21 By : หางอึ่ง
 


 

No. 11



โพสกระทู้ ( 1,346 )
บทความ ( 1 )



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


คลิกที่ DataGridView เลือกเป็น Dock in Parent Container

T01-13 Create Form Step 07

ตอนนี้ ExpTypeID ใน DataGridView ยังเป็น TextBox อยู่
ขั้นตอนต่อไปเราจะเปลี่ยนเป็น ComboBox

T01-13 Create Form Step 08

ก่อนอื่นต้อง Add BindingSource

T01-13 Create Form Step 09

ที่ BindingSource ใหม่นี้
ให้เปลียน DataSource เป็น dsMain

T01-13 Create Form Step 09a

DataMember เป็น ExpType

T01-13 Create Form Step 09b
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-12-17 11:28:19 By : หางอึ่ง
 


 

No. 13



โพสกระทู้ ( 1,346 )
บทความ ( 1 )



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


เข้าไปแก้ไข Columns คลิก "Edit Columns."

T01-13 Create Form Step 10

ต้องการแก้ไข Column ExpTypeID เป็น ComboBox
คลิกที่ ExpTypeID ที่ Property ColumnType ด้านขวา เปลี่ยนเป็น DataGridViewComboBoxColumn

T01-13 Create Form Step 11

เปลี่ยนคุณสมบัติ ที่เกี่ยวข้องกับการ Binding Data ตามภาพข้างล่าง
DataSource: bsExpTypeID
DisplayName: ExpTypeName
ValueMember: ExpTypeID

T01-13 Create Form Step 12


สลับลำดับ Column ด้วยลูกศรขึ้น-ลง
แก้ไขคุณสมบัติอื่นตามต้องการ
เช่น ReadOnly
เมื่อแก้ไขทุกอย่างพร้อมแล้ว ก็กดปุ่ม "OK"

T01-13 Create Form Step 12b
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-12-17 12:43:17 By : หางอึ่ง
 


 

No. 14



โพสกระทู้ ( 1,346 )
บทความ ( 1 )



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


ลองเข้าไปดู Code View
จะเห็น Code ตามข้างล่างนี้
ซึ่ง VS จัดการสร้างให้อัตโนมัติ
สามารถแก้ไขได้ตามความต้องการ

Code (VB.NET)
Public Class TestDataGrid

    Private Sub MExpenseBindingNavigatorSaveItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MExpenseBindingNavigatorSaveItem.Click
        Me.Validate()
        Me.bsMExpense.EndEdit()
        Me.TableAdapterManager.UpdateAll(Me.dsMain) 

    End Sub

    Private Sub TestDataGrid_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        'TODO: This line of code loads data into the 'MyDataSet.MExpense' table. You can move, or remove it, as needed.
        Me.ExpTypeTableAdapter.Fill(Me.dsMain.ExpType)

        'TODO: This line of code loads data into the 'MyDataSet.MExpense' table. You can move, or remove it, as needed.
        Me.taMExpense.Fill(Me.dsMain.MExpense)

    End Sub
End Class

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-12-17 12:47:31 By : หางอึ่ง
 


 

No. 15



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

สมาชิกที่ใส่เสื้อไทยครีเอท

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

ขอบคุณ +1 สำหรับบทความดี ๆ ครับ เก็บลงคลังกระทู้ให้เรียบร้อยแล้วครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-12-17 12:52:06 By : webmaster
 


 

No. 16



โพสกระทู้ ( 1,346 )
บทความ ( 1 )



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


ในที่นี้ ผมต้องการ
1. ComboBox ExpTypeID ซึ่งเป็น Combo ที่ดึงข้อมูลจากตาราง ExpType มาแสดง
โดยต้องการให้แสดงรายการข้อมูล เฉพาะที่ ExpTypeID>0 จึงเข้าไปแก้ไขที่ Event Form.Load

2. ให้บันทึกผู้แก้ไข วันที่แก้ไข วันที่เพิ่มรายการ ผู้เพิ่มรายการ
3. ผมขอใช้ TableAdapter ในการ Update ตาราง ไม่ใช้ TableAdapterManager เอาไว้ให้ระดับที่ชำนาญกว่านี้ ค่อยมาคุยเรื่อง TableAdapterManager กันใหม่


Code (VB.NET)
Public Class TestDataGrid

    Private Sub MExpenseBindingNavigatorSaveItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MExpenseBindingNavigatorSaveItem.Click
        Me.Validate()
        Me.bsMExpense.EndEdit()
        '---------------------------------------------
        ' ใส่ข้อมูลผู้ใช้งาน และวันที่แก้ไขตรงนี้
        '---------------------------------------------
        Dim stUser As String
        Dim SysDate As Date = Date.Now
        stUser = My.User.Name
        stUser = "CurrentUser"    ' ของจริงบรรทัดนี้ไม่ต้องใส่
        For Each dr As DataRow In Me.dsMain.MExpense.Rows
            If (dr.RowState And 20) > 0 Then   ' เช็คกับ 20 ถ้าเป็นจริง แสดงว่าเป็นการเพิ่มหรือไม่ก็แก้ไข
                If dr.RowState = DataRowState.Added Then
                    dr("usrInsert") = stUser
                    dr("dtInsert") = SysDate
                End If
                dr("usrModify") = stUser
                dr("dtModify") = SysDate
            End If
        Next

        '---------------------------------------------
        ' แก้ไขตรงนี้ 
        '---------------------------------------------
        ' Me.TableAdapterManager.UpdateAll(Me.dsMain) 
        Me.taMExpense.Update(Me.dsMain.MExpense) 
    End Sub

    Private Sub TestDataGrid_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        ' เนื่องจากใน Combo ExpTypeID ต้องการแสดงรายการที่ ExpTypeID>0 จึงต้องแก้ไขคำสั่ง
        ' Me.ExpTypeTableAdapter.Fill(Me.dsMain.ExpType)
        Dim SQL As String = "SELECT ExpTypeID, ExpTypeName FROM ExpType WHERE ExpTypeID>0"
        Dim da As New SqlClient.SqlDataAdapter(SQL, My.Settings.BudgetConnectionString)
        da.Fill(Me.dsMain.ExpType)

        'TODO: This line of code loads data into the 'MyDataSet.MExpense' table. You can move, or remove it, as needed.
        Me.taMExpense.Fill(Me.dsMain.MExpense)

    End Sub
End Class



ประวัติการแก้ไข
2010-12-21 10:21:42
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-12-17 12:53:20 By : หางอึ่ง
 


 

No. 17



โพสกระทู้ ( 1,346 )
บทความ ( 1 )



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


ลองรันแล้วใส่ข้อมูล
สังเกต Column ExpID ได้รหัสติดลบ
ซึ่งถูกต้องแล้ว
T01-13 Create Form Step 14

เมื่อกดปุ่มบันทึก (รูปแผ่นดิสก์)
จะได้รหัส ExpID เป็นบวกนั่นคือ ข้อมูลเหล่านี้ได้ถูกบันทึกสมบูรณ์แล้ว
T01-13 Create Form Step 15


ประวัติการแก้ไข
2010-12-17 12:58:23
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-12-17 12:56:25 By : หางอึ่ง
 


 

No. 18



โพสกระทู้ ( 1,346 )
บทความ ( 1 )



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


ที่ได้รหัสตอนแรกเป็นลบ
เพราะ VS ได้กำหนดให้ ExpID ในตาราง Expense เป็น AutoNumber แบบลบทีละ 1
ด้วยเหตุผลบางประการ
อย่าพยายามไปแก้มันนะครับ
T01-13 Create Form Step 16
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-12-17 13:01:38 By : หางอึ่ง
 


 

No. 19



โพสกระทู้ ( 1,346 )
บทความ ( 1 )



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


Instance ExpTypeTableAdapter ถูกสร้างอัตโนมัติโดย VS
ซึ่งเราไม่ได้ใช้ ลบทิ้งได้

T01-13 Create Form Step 09c
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-12-17 13:03:57 By : หางอึ่ง
 


 

No. 20



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



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


ขอบคุณมากค่ะ ได้ความรู้เพิ่มขึ้นจริงๆ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-07-14 10:09:42 By : แค่เด็กตัวเล๊กๆคนนึง
 


 

No. 21

Guest


ขอบคุณมากครับ สำหรับตัวอย่างดี ๆแบบนี้

ผมมีคำถาม รบกวนด้วยครับ

ผมทดลองทำตามตัวอย่าง แต่พบปัญหาคือ เมื่อเรากรอกข้อมูลลงใน datagrid แล้ว

เมื่อกด save ข้อมูลเหมือนจะไม่เข้าใน database คือเมื่อ End Program แล้ว run program ใหม่

ข้อมูลบน datagrid จะว่างหมดเลยครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-07-24 12:40:27 By : Somporn
 


 

No. 22



โพสกระทู้ ( 1,346 )
บทความ ( 1 )



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


ใช้ฐานข้อมูลอะไรขอรับ
SQL Compact รึเปล่า
หรือ MS Access
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-07-24 19:15:37 By : watcharop
 


 

No. 23

Guest


ลองทั้ง 2 แบบแล้วเป็นเหมือนกันครับ

แต่พอทำ เป็น file setup พอ install ลงเครื่องแล้วลองใช้งานได้ปกติ

เข้าใจว่าน่าจะเป็นเพราะช่วงพัฒนา Program มันเป็นข้อมูลชั่วคราวหรือเปล่า พอออกจากโปรแกรมข้อมูลใน
Database หายหมด แต่ระหว่างเขียนโปรแกรมข้อมูลยังอยู่ครับ

แบบว่ามันแปลกๆๆ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-07-24 20:24:23 By : Somporn
 


 

No. 24



โพสกระทู้ ( 1,346 )
บทความ ( 1 )



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


อาจเป็นเพราะทุกครั้งที่รันใน VS
VS Copy database ไปไว้ในโฟลเดอร์ Debug ทำให้เกิดการทับข้อมูลเก่า
ไม่รู้คุณเขียนโค้ดให้ Connect กับฐานข้อมูลที่อยู่โฟลเดอร์เดียวกับโปรแกรมรึเปล่า
ซึ่งถ้าเป็นเช่นนั้น นั่นแหละคือคำตอบ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-07-24 22:24:59 By : watcharop
 


 

No. 25



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



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


พี่ครับ ผมมือใหม่มากๆ ..พอจะมีแนวทางสอนทำปุ่ม Save ให้มันทำงานได้ไหมฮะ
อีกอย่าง เพราะผมใช้ MySQL รึเปล่า ช่องบางช่องตอน สร้าง new connect มันไม่ให้ติ๊กถูกตามภาพด้วยอ่า เกี่ยวไหมครับ


ประวัติการแก้ไข
2011-12-24 00:23:35
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-12-24 00:21:35 By : shadowromeo
 


 

No. 26



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



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


ขอถามคุณหางอึ่งหน่อยครับ

โดยปกติเวลาเราเซฟข้อมูลที่มีการแก้ไขเราจะกดปุ่มเซฟ(รูปแผ่นดิสก์)ที่คอนโทรล BindingNavigator ใช่ไหม่ครับ

ที่นี้ถ้าฟอร์มที่ผมออกแบบไม่ได้ใช้ตัวคอนโทรล BindingNavigator จะเขียนคำสั่งให้มันเซฟข้อมูลลง database อย่างไรครับ

เช่นอาจต้องเขียนคำสั่งอะไรซักอย่างตอนที่เรากำลังจะปิดฟอร์ม อะไรประมาณเนี้ยครับ

ตย. ไม่รู้ว่าผมคิดถูกหรือเปล่านะครับ

private void MyForm_FormClosing(object sender, FormClosingEventArgs e)
{
//คำสั่งให้ update ข้อมูลลงใน database
}

ปล.ผมเดาเอาเองนะครับว่าควรจะต้องเขียนลงใน FormClosing event

อีกอย่างหนึ่งครับ ผมใช้ภาษา c# นะครับ แต่ถ้าคุณหางอึ่งไม่สะดวก จะตอบมาเป็นภาษา vb ก็ได้ครับ

ขอบคุณครับ


ประวัติการแก้ไข
2012-05-01 20:00:15
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-05-01 19:58:34 By : geo1209
 


 

No. 27



โพสกระทู้ ( 1,346 )
บทความ ( 1 )



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


เมื่อจะบันทึกก็เรียกคำสั่งข้างล่างนี้
เป็นการบันทึกตาราง MExpense
ซึ่งจะอยู่ Event ไหนก็ได้

Me.taMExpense.Update(Me.dsMain.MExpense)
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-05-02 09:53:08 By : watcharop
 


 

No. 28

Guest


มือใหม่ค่ะ รบกวนผู้รู้ช่วยหน่อยค่ะ ทำโปรเจ็คจบ แต่ติดขั้นตอนการคำนวณ ใช้ Database SQL Server 2008 R2 และ เขียนด้วย VB 2010 ค่ะ
หน้าจอนี้พอดึงข้อมูลจากใบสั่งซื้อเข้ามาแล้จะทำการบันทึกมันไม่ได้ค่ะฟ้อง

Code (VB.NET)
Private Sub BtnSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnSave.Click
        connection = New SqlConnection(conStr)
        If connection.State = ConnectionState.Closed Then
            connection.Open()
        End If
        BtnSearch.Enabled = False
        BtnSave.Enabled = False
        BtnExit.Enabled = True

        Dim CusID As String = txtID.Text
        Dim processID As String = Process_ID.Text
        Dim POID As String = PO_ID.Text
        Dim Remarks As String = Remark.Text


        Dim MSG As String = ""
        If status = "S" Then
            MSG = "คุณต้องการเพิ่มข้อมูล ใช่หรือไม่?"
        ElseIf status = "E" Then
            MSG = "คุณต้องการแก้ไขข้อมูล ใช่หรือไม่?"
        End If

        If MessageBox.Show(MSG, "คำยืนยัน", MessageBoxButtons.YesNo, MessageBoxIcon.Information) = Windows.Forms.DialogResult.Yes Then

            Select Case UCase(status)
                Case "S"
                    Dim sql As String = "INSERT INTO Process_Product(Process_ID,PO_ID,Cus_ID,Date_Process,Date_Receiving_Pro, Remark) values ('" & processID & "','" & POID & "','" & CusID & "','" & DateTimeProcess.Value.AddYears(-543).ToString("MM/dd/yyyy") & "','" & DateTimeReceProcess.Value.AddYears(-543).ToString("MM/dd/yyyy") & "','" & Remarks & "')"
                    Dim cmd2 As New SqlCommand(sql, connection)
                    Dim adapter As New SqlDataAdapter(cmd2)
                    Dim data As New DataSet()
                    cmd2.Parameters.Clear()
                    cmd2.ExecuteNonQuery()
                    Dim data3 As New DataSet()
                    Dim sql3 As String = "Insert into Process_Product_ Lists(Process_ID, Product_ID, Qty, Unit) values (@Process_ID, @Product_ID, @Qty, @Unit)"
                    'MessageBox.Show(sql3)
                    Dim cmd3 As New SqlCommand(sql3, connection)
                    For i As Integer = 0 To MyDataGridView1.RowCount - 2
                        With cmd3
                            .Parameters.AddWithValue("processID", (Process_ID.Text))
                            .Parameters.AddWithValue("Product_ID", MyDataGridView1.Rows(i).Cells(0).Value)
                            '.Parameters.AddWithValue("Price", MyDataGridView1.Rows(i).Cells(2).Value)
                            .Parameters.AddWithValue("Qty", CDbl(MyDataGridView1.Rows(i).Cells(2).Value))
                            .Parameters.AddWithValue("Unit", MyDataGridView1.Rows(i).Cells(3).Value)
                        End With

                        cmd3.ExecuteNonQuery()
                        cmd3.Parameters.Clear()
                    Next i
                    MessageBox.Show("บันทึกข้อมูลเรียบร้อยแล้ว", "ข้อความ", MessageBoxButtons.OK, MessageBoxIcon.None)
                    '    End If
                    'End If
                    clear()
                    MyDataGridView1.Columns.Clear()
                    MyDataGridView1.Rows.Clear()
                    MyDataGridView1.DataSource = Nothing
                    DataGrid1()
                    BtnSave.Enabled = False
                    BtnSearch.Enabled = False
                    BtnDelete.Enabled = False
                    MyDataGridView1.Enabled = False
                    Process_ID.Enabled = True
                    PO_ID.Enabled = False
                    locktext()
                Case "E"
                    'Dim sql As String = "Update Process_Product set Date_Process ='" & DateTimeProcess.Value.AddYears(-543).ToString("MM/dd/yyyy") & "',"
                    'sql &= "Cus_ID ='" & txtID.Text & "',"
                    ''sql &= "Amount1 ='" & Amount1.Text & "',"
                    ''sql &= "Discount ='" & Discount.Text & "',"
                    ''sql &= "SumDis ='" & SumDiscount.Text & "',"
                    ''sql &= "Amount2 ='" & Amount2.Text & "',"
                    ''sql &= "Vat ='" & Vat.Text & "',"
                    ''sql &= "SumVat ='" & SumVat.Text & "',"
                    ''sql &= "Total ='" & Total.Text & "',"
                    ''sql &= "Remark ='" & Remark.Text & "'WHERE Accounts_ID ='" & Account_ID.Text & "'"
                    'Dim cmd As New SqlCommand(sql, connection)
                    'Dim cmd1 As New SqlCommand(sql, connection)
                    ''For i As Integer = 0 To DataGridView2.RowCount - 2
                    'With cmd1
                    '    Dim sql2 As String = "Delete From Process_Product_ Lists Where Process_ID='" & Process_ID.Text & "'"
                    '    With cmd1
                    '        .CommandType = CommandType.Text
                    '        .CommandText = sql2
                    '        .Connection = connection
                    '        .ExecuteNonQuery()
                    '    End With
                    '    cmd1.ExecuteNonQuery()
                    '    cmd1.Parameters.Clear()
                    'End With
                    ''Next i
                    'Dim sql3 As String = "Insert into Process_Product_ Lists(Process_ID,Product_ID, Qty, Unit) values (@ProcessID,@Product_ID,@Qty, @Unit)"
                    'Dim cmd3 As New SqlCommand(sql3, connection)
                    'For i As Integer = 0 To MyDataGridView1.RowCount - 2
                    '    With cmd3
                    '        .Parameters.AddWithValue("Process_ID", (Process_ID.Text))
                    '        .Parameters.AddWithValue("Product_ID", MyDataGridView1.Rows(i).Cells(0).Value)
                    '        '.Parameters.AddWithValue("Price", MyDataGridView1.Rows(i).Cells(2).Value)
                    '        .Parameters.AddWithValue("Qty", CDbl(MyDataGridView1.Rows(i).Cells(2).Value))
                    '        .Parameters.AddWithValue("Unit", CDbl(MyDataGridView1.Rows(i).Cells(3).Value))
                    '    End With

                    '   cmd3.ExecuteNonQuery()
                    '    cmd3.Parameters.Clear()
                    'Next i
                    'With cmd
                    '    .CommandType = CommandType.Text
                    '    .CommandText = sql
                    '    .Connection = connection
                    '    .ExecuteNonQuery()
                    'End With
                    'cmd.ExecuteNonQuery()
                    'cmd.Parameters.Clear()
                    'MessageBox.Show("แก้ไขข้อมูลเรียบร้อยแล้ว", "ข้อความ", MessageBoxButtons.OK, MessageBoxIcon.None)
                    'clear()
                    'MyDataGridView1.Columns.Clear()
                    'MyDataGridView1.Rows.Clear()
                    'MyDataGridView1.DataSource = Nothing
                    'DataGrid1()
                    'BtnSave.Enabled = False
                    'BtnAdd.Enabled = True
                    'BtnSearch.Enabled = False
                    'BtnDelete.Enabled = False
                    'MyDataGridView1.Enabled = False
                    'PO_ID.Enabled = True
                    'Process_ID.Enabled = False
                    'locktext()
            End Select
        End If
    End Sub

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-05-17 10:37:32 By : surinda
 


 

No. 29



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



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


ขอบคุณคับ^^
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-09-06 17:13:24 By : TheSkyPy
 


 

No. 30



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



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



แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-09-18 15:41:33 By : kkk
 


 

No. 31

Guest


ขอถามเพิมเติมหน่อยค่ะ ถ้าเกิดว่า อิมพอร์ตไฟล์ Excel ให้เข้ามาอยู่ในรูป datagridview ได้แล้วถ้าต้องการแก้ไขบางเซลล์ในนั้น Ex.ค่าตัวเลข

ซึ่งเมื่อแก้ไขแล้ว คอมลัมภ์สุดท้ายซึ่งเป็น total ค่ะ ต้องการให้มันเปลี่ยนค่าตามที่แก้ตัวเลขไปอ่ะค่ะ คือตอนนี้มันไม่เปลี่ยนค่าให้

มันค้างค่าตอนที่ยังไม่ได้เปลี่ยนค่าตัวเลขไว้ค่ะ จะแก้ยังไงอ่ะคะ รบกวนด้วยนะคะ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-11-07 12:08:48 By : alice
 


 

No. 32

Guest


อยากได้ตัวอย่างโค้ด vb.net Import ข้อมูลจาำกไฟล์ Excel เข้า Access ค่ะ รบกวนด้วยนะคะ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-11-08 10:00:29 By : annsan
 


 

No. 33

Guest


แล้วถ้าต้องการไม่ให้คอลัมน์ใน DataGrid ไม่สามารถทำงานได้ล่อครับ
คือไม่อยากให้คอลัมน์ รหัสสินค้าทำงานได้ แต่ยังแสดงบน Datagrid อยู่
โค้ด dagrid.enable = false
ได้ไหมครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-08-20 12:05:34 By : zen
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : การสร้างฟอร์มด้วย DataGridView เบื้องต้นแบบ Step by Step [ VB.NET (Windows App+SQL Server) ]
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ 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, รับทำเว็บไซต์ รับเขียนโปรแกรม , รับทำบัญชี , โรงงานผลิตครีม , สำนักงานบัญชี , รับจดทะเบียนบริษัท , Pangpond , รถมือสอง

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