Cara menampilkan baris tertentu di datagridview dari database ms access di VB

masukkan deskripsi gambar di sini

Hai, saya sedang mengembangkan proyek vb. Saya memiliki database MS-access dengan 3 kolom (Itno, Nama, Harga). Dalam formulir saya telah menambahkan dua kotak teks dan tombol tambahkan (TextBox2=Itno,Textbox=quantity). jika pengguna memberikan Itno dan kuantitasnya dan klik tombol tambah, maka Nama dan harga Itno akan ditampilkan di datagridview bersama dengan kuantitas yang dimasukkan di Textbox3.

Saya telah mencoba sejauh pengetahuan saya. Tapi saya tidak bisa menampilkan data di Datagridview. Adakah yang bisa tolong bantu saya...

Impor Sistem.Data.OleDb Impor Sistem.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

person Community    schedule 19.10.2016    source sumber
comment
Anda telah memberikan kode yang relevan, dan itu bagus, tetapi Anda belum memberikan penjelasan apa pun, yang sama pentingnya. Berikan penjelasan LENGKAP dan JELAS tentang apa yang ingin Anda capai dan bagaimana perilaku kode sebenarnya berbeda dari ekspektasi Anda. Mereka yang berpendapat bahwa judulnya menjelaskan semuanya jarang sekali benar.   -  person jmcilhinney    schedule 19.10.2016
comment
Jika Anda ingin mengisi DataTable dari pembaca data maka itu adalah satu baris: myDataTable.Load(myDataReader).   -  person jmcilhinney    schedule 19.10.2016
comment
Jika DataTable sudah terikat ke DataGrdiView maka tidak ada alasan untuk mengikatnya lagi. Jika Anda ingin mengubah data, cukup Clear koleksi Rows lalu isi kembali. Pengikatan yang ada akan menyebabkan data baru muncul di grid.   -  person jmcilhinney    schedule 19.10.2016
comment
terima kasih teman-teman, bisakah Anda memberikan potongan kode yang benar di proyek saya   -  person    schedule 19.10.2016
comment
saya sangat tidak jelas tentang masalah ini   -  person    schedule 19.10.2016
comment
Jadi, apakah Anda mengatakan bahwa yang sebenarnya Anda inginkan adalah dapat menambahkan baris baru ke grid dari TextBoxes? Kode yang Anda miliki membuatnya tampak seperti Anda ingin menggunakan TextBoxes untuk menentukan baris mana yang akan diambil dari database. Jika Anda tidak dapat memberi tahu kami dengan jelas apa yang Anda inginkan, maka secara ajaib kami tidak akan dapat memberi tahu Anda cara melakukannya. Saya dapat memahami bahwa Anda mungkin tidak jelas tentang cara mencapai apa yang Anda inginkan, tetapi bagaimana mungkin Anda tidak jelas tentang bagaimana Anda ingin aplikasi tersebut berperilaku?   -  person jmcilhinney    schedule 19.10.2016
comment
ya saya ingin baris yang ada ditampilkan di gridview dengan menggunakan kotak teks untuk menentukan baris yang saya butuhkan   -  person    schedule 19.10.2016
comment
Jadi mengapa Anda menambahkan TextBox3.Text ke DataTable secara manual? Apakah Anda benar-benar akan memberikan penjelasan yang tepat atau saya hanya akan bosan membuang-buang waktu menanyakan hal-hal yang seharusnya sudah Anda jelaskan dan menyerah. Berhenti, pikirkan, jelaskan.   -  person jmcilhinney    schedule 19.10.2016
comment
Mengingat Pengecualian Anda, saya pikir masalah pertama ada dalam kueri Anda, Anda membandingkan angka dengan string: WHERE Itno='" & TextBox2.Text & "' (perhatikan '). Catatan lain, dengan kueri Anda, Anda dihadapkan pada SQL Injection dan Anda tidak membuang objek dengan benar (seperti koneksi)   -  person Matteo Umili    schedule 19.10.2016
comment
Wow...kamulah orangnya, itu berhasil!!! Terima kasih jmcilhinney & Matteo Umili   -  person    schedule 19.10.2016
comment
Kalian yang terbaik   -  person    schedule 19.10.2016


Jawaban (1)


        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
            Dim R As DataRow = tb.NewRow
            R("Name") = n.ToString
            R("Quantity") = TextBox3.Text
            R("Price") = p.ToString
            tb.Rows.Add(R)
            DataGridView1.DataSource = tb

saya telah memperbaiki kodenya

person Community    schedule 20.10.2016