สวัสดี ฉันกำลังพัฒนาโครงการ vb ฉันมีฐานข้อมูล MS-access ที่มี 3 สี (Itno, Name, Price) ในรูปแบบฉันได้เพิ่มกล่องข้อความสองกล่องและเพิ่มปุ่ม (TextBox2=Itno,Textbox=quantity) หากผู้ใช้ระบุ Itno และจำนวนแล้วคลิกปุ่มเพิ่ม ชื่อและราคาของ Itno ควรแสดงใน DataGridview พร้อมกับปริมาณที่ป้อนในกล่องข้อความ3
ฉันได้พยายามเท่าที่ความรู้ของฉัน แต่ฉันไม่สามารถแสดงข้อมูลใน Datagridview ได้ ใครก็ได้โปรดช่วยฉันด้วย...
นำเข้า System.Data.OleDb นำเข้า System.Data.DataTable
Public Class Form1
Dim ad As System.Data.OleDb.OleDbDataAdapter
Dim cm As System.Data.OleDb.OleDbCommand
Dim co As System.Data.OleDb.OleDbConnection
Dim dr As System.Data.OleDb.OleDbDataReader
Dim tb As New DataTable("Table")
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
tb.Columns.Add("Iteam", Type.GetType("System.Int32"))
tb.Columns.Add("Quantity", Type.GetType("System.String"))
tb.Columns.Add("Price", Type.GetType("System.String"))
DataGridView1.DataSource = tb
End Sub
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
co = New System.Data.OleDb.OleDbConnection
co.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;" &
"Data Source=C:\Users\Vicky\Desktop\db\bill\bill.mdb;"
Try
co.Open()
Dim cd As String
cd = "SELECT * FROM item WHERE Itno='" & TextBox2.Text & "'"
cm = New OleDb.OleDbCommand(cd, co)
dr = cm.ExecuteReader()
While dr.Read()
Dim n As String
Dim p As String
p = dr("Price").ToString
n = dr("Name").ToString
tb.Rows.Add(p.ToString, TextBox3.Text, n.ToString)
DataGridView1.DataSource = tb
End While
co.Close()
Catch ex As Exception
MsgBox(ex.ToString)
End Try
End Sub
End Class
DataTable
จากเครื่องอ่านข้อมูล ให้ใช้บรรทัดเดียว:myDataTable.Load(myDataReader)
- person jmcilhinney   schedule 19.10.2016DataTable
ถูกผูกไว้กับDataGrdiView
แล้ว ก็ไม่มีเหตุผลที่จะผูกอีกครั้ง หากคุณต้องการเปลี่ยนแปลงข้อมูล เพียงClear
คอลเลกชันRows
แล้วเติมข้อมูลใหม่ การเชื่อมโยงที่มีอยู่จะทำให้ข้อมูลใหม่ปรากฏในตาราง - person jmcilhinney   schedule 19.10.2016TextBoxes
ได้ใช่หรือไม่ รหัสที่คุณมีทำให้ดูเหมือนว่าคุณต้องการใช้TextBoxes
เพื่อระบุแถวที่มีอยู่ที่จะรับจากฐานข้อมูล หากคุณไม่สามารถบอกเราได้อย่างชัดเจนว่าคุณต้องการอะไร เราก็จะไม่สามารถบอกคุณได้ว่าต้องทำอย่างไรอย่างน่าอัศจรรย์ ฉันเข้าใจได้ว่าคุณอาจไม่มีความชัดเจนเกี่ยวกับวิธีการบรรลุสิ่งที่คุณต้องการ แต่คุณจะไม่ชัดเจนได้อย่างไรว่าคุณต้องการให้แอปพลิเคชันทำงานอย่างไร - person jmcilhinney   schedule 19.10.2016TextBox3.Text
ลงในDataTable
ด้วยตนเอง คุณมักจะให้คำอธิบายที่ถูกต้องจริงๆ หรือฉันแค่เบื่อที่จะเสียเวลาถามคุณในสิ่งที่คุณควรอธิบายแล้วและยอมแพ้ หยุดคิดอธิบาย - person jmcilhinney   schedule 19.10.2016WHERE Itno='" & TextBox2.Text & "'
(โปรดสังเกต'
) หมายเหตุอีกประการหนึ่ง สำหรับคำถามของคุณ คุณพบกับ SQL Injection และคุณไม่ได้กำจัดออบเจ็กต์ของคุณอย่างถูกต้อง (เหมือนการเชื่อมต่อ) - person Matteo Umili   schedule 19.10.2016