Membaca Catatan dari Access Database dengan ASP.NET – Mengenal ASP.NET Bagian 4.2

February 22nd 2010

ASP.NET 2.0 menyediakan kontrol sumber data seperti SQLDataSource yang akan melakukan hampir semuanya untuk Anda dengan menggunakan kode deklaratif. Akan tetapi langkah pertama dan penting yang perlu dikuasai adalah belajar bagaimana bekerja dengan pemrograman database Anda.

Dalam rangka untuk menyelesaikan tugas kita ADO.NET menyediakan kelas-kelas yang diperlukan untuk digunakan dalam kode ASP.NET kita. Hal pertama yang perlu dilakukan untuk menghubungkan ke database adalah memutuskan kelas yang akan Anda gunakan, yaitu System.Data.OleDb namespace.

Sekarang kita tahu beberapa kelas yang akan bekerja sama dengan kita, perlu untuk dapat diakses dari halaman web kita. Kita melakukan hal ini dengan mengimpor namespace di bagian atas halaman.

    <%@ Import  Namespace="System.Data.Oledb"  %>

Jika kita tidak mengimpor namespace tentu kita akan mendapatkan error ketika kita mencoba untuk menggunakan kelas-kelas dan membuat objek.

Selanjutnya kita perlu berpikir tentang membuat sambungan objek yang akan memungkinkan kita untuk melakukan koneksi ke MS Access database. Kita akan mendeklarasikan variabel OledbConnection yang cocok untuk tujuan sambungan memegang benda.

     Dim Connection As OledbConnection

‘Dim Connection As String’ jelas tidak akan cukup, oleh karena kita membutuhkan sebuah variabel yang dapat secara spesifik menyimpan objek koneksi.

Setelah mendeklarasikan variabel sambungan kita perlu menciptakan koneksi objek. Kita melakukan ini dengan menggunakan Kata Kunci Baru dan pada saat yang sama kita lewat di sebuah parameter yaitu connection string ke objek koneksi yang baru dibuat. Connection string yang akan mengadakan nama penyedia yang dalam kasus ini adalah Microsoft.jet.Oledb4.0, nama file dan path ke database server.mappath ( “sample_data.mdb”).

Sekali kita telah menciptakan hubungan kita, kita dapat menetapkan objek ke variabel hubungan kita ‘koneksi’.

     Connection  = New  OledbConnection("Provider=Microsoft.Jet.Oledb.4.0;"  & _
     "Data Source=" & server.mappath("sample_data.mdb") )

Jika kita tidak berhasil dalam sambungan koneksi string maka objek tidak akan tahu di mana mencarinya.

Kita sekarang dapat membuka sambungan objek.

     Connection.Open()

Kami kemudian membutuhkan objek perintah untuk mengambil data, insert, update dan menghapus catatan.

Kita akan mendeklarasikan variabel OledbCommand yang cocok untuk tujuan perintah memegang benda.

     Dim Command As OledbCommand

Setelah mendeklarasikan variabel perintah, kita perlu menciptakan objek perintah. Kita akan membuat objek Command menggunakan Kata Kunci Baru dan pada saat yang sama objek Command menerima 2 parameter yaitu SQL Statement dan sambungan objek. Objek koneksi memegang semua informasi koneksi ke database yang dibutuhkan objek perintah kita.

Sekali kita telah membuat objek perintah, kita dapat memberikan perintah kepada variabel ‘perintah’.

     Command = New OledbCommand("SELECT *  FROM  tblCustomers", Connection)

Sekarang kita perlu memgembalikan catatan dari database ke dalam sebuah obyek DataReader.

Pertama-tama mari kita mendeklarasikan variabel OledbDatareader ‘DataReader’. Kemudian kita mengisi dataReader dengan memanggil metode ExecuteReader dari objek perintah kita. Anda akan melihat bahwa daripada menggunakan Kata Kunci Baru seperti yang kita lakukan dengan objek ADO.NET kita menggunakan metode ExecuteReader untuk membuat obyek DataReader. Referensi perintah objek koneksi dan pernyataan SQL yang diperlukan oleh OledbDataReader untuk memperoleh data.

    Dim DataReader As OledbDatareader
    DataReader = Command.ExecuteReader()

Kita bisa iterate melalui catatan dalam baris demi baris DataReader tapi alternatif yang lebih mudah adalah menempatkan kontrol dalam Gridview kode dalam HTML elemen body dan mengikat DataReader ke Gridview.

Kita mengatur property DataSource dari Gridview DataReader dan kemudian menggunakan metode dataBind Gridview kita untuk mengikat hasil DataReader.

    Gridview1.Datasource = DataReader
    Gridview1.DataBind()

Terakhir, mari kita menutup koneksi objek.

    Connection.Close()

Di bawah ini adalah sumber lengkap untuk kode halaman kita. Berisi VB.net HTML dan kode yang membentuk halaman kita. Sangat penting untuk dicatat bahwa kode VB.Net ditempatkan dalam acara page_load. Ini berarti bahwa setiap kali halaman meminta acara page_load dinaikkan atau menjalankan dan kode yang kita telah tulis dijalankan.

    <%@ Page Language="VB" %>
    <%@ Import Namespace="System.Data.Oledb" %>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

    <script runat="server">

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
    Dim Connection As OledbConnection
    Connection = New OleDbConnection("Provider=Microsoft.Jet.Oledb.4.0;" & _
    "Data Source=" & server.mappath("sample_data.mdb"))
    Connection.Open()
    Dim Command As OleDbCommand
    Command = New OleDbCommand("SELECT * FROM Item", Connection)
    Dim DataReader As OleDbDataReader
    DataReader = Command.ExecuteReader()
    GridView1.DataSource = DataReader
    GridView1.DataBind()

    Connection.Close()

    End Sub
    </script>
    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
    <title>Read from MS Access Database</title>
    </head>
    <body>
    <form id="form1" runat="server">
    <div>
    <asp:GridView ID=GridView1 runat="server" EmptyDataText="There are no records">
    </asp:GridView>

    </div>
    </form>
    </body>
    </html>

Berikut adalah cara menampilkan catatan kita pada browser. Gridview kontrol khusus untuk ASP.NET 2.0 jadi pastikan bahwa yang Anda jalankan baik di server lokal atau dengan perusahaan hosting Anda. Seperti yang anda lihat di bawah menjadikan Gridview catatan dalam format tabel.

[Pasang menjalankan contoh program di sini]

Berjaga-jaga tidak ada catatan untuk menampilkan kita bisa mengatur Gridview’s emptydatatext properti untuk ‘Tidak ada catatan’ sebagai di bawah ini.

<asp:GridView ID=GridView1  runat="server"  EmptyDataText=”There are no records”>  
 </asp:GridView>

Memasukkan Records ke Access Database dengan ASP.NET

Pertama-tama kita perlu mengimpor namespace di bagian atas halaman kami.

<%@ Import  Namespace="System.Data.Oledb"  %>

Jika kita tidak mengimpor namespace jelas kami mendapatkan error ketika kita mencoba untuk menggunakan kelas-kelas dan membuat objek.

Selanjutnya kita perlu berpikir tentang membuat sambungan objek yang akan memungkinkan kita untuk melakukan koneksi ke Microsoft Access database kami. Kita akan mendeklarasikan variabel OledbConnection yang cocok untuk tujuan sambungan memegang benda.

Dim Connection As OledbConnection

‘Dim Connection As String’ jelas tidak akan cukup, karena kita membutuhkan sebuah variabel yang dapat secara spesifik menyimpan objek koneksi.

Setelah sambungan mendeklarasikan variabel kita perlu menciptakan koneksi objek. Kita melakukan ini dengan menggunakan Kata Kunci Baru dan pada saat yang sama kita lewat di sebuah parameter yaitu connection string ke objek koneksi yang baru dibuat. Connection string yang akan mengadakan nama penyedia bahwa dalam kasus kita adalah Microsoft.jet.Oledb4.0, nama file dan path ke database server.mappath ( “sample_data.mdb”).

Sekali kita telah menciptakan hubungan kita kita dapat menetapkan objek ke variabel hubungan kita ‘koneksi’.

Connection  = New  OledbConnection("Provider=Microsoft.Jet.Oledb.4.0;"  & _
 "Data Source=" & server.mappath("sample_data.mdb")     )

Jika kita tidak lulus dalam sambungan koneksi string maka objek tidak akan tahu di mana mencarinya.

Kita sekarang dapat membuka sambungan objek.

Connection.Open()

Kami sekarang membutuhkan objek perintah untuk mengambil data, insert, update dan menghapus catatan.

Kita akan mendeklarasikan variabel OledbCommand yang cocok untuk tujuan perintah memegang benda.

Dim Command As OledbCommand

Setelah mendeklarasikan variabel perintah kita perlu menciptakan objek perintah. Kita akan membuat objek Command kita menggunakan Kata Kunci Baru dan pada saat yang sama objek Command menerima 2 parameter yaitu SQL Statement dan sambungan objek. Objek koneksi memegang semua informasi koneksi ke database yang kebutuhan objek perintah kita.

Sekali kita telah membuat objek perintah kita kita dapat memberikan perintah kepada kita variabel ‘perintah’.

Command = New OleDbCommand("INSERT INTO Item(ItemCode, ItemName, ItemDesc, ItemLongDesc, ItemPrice, ItemStock)" & _
        " VALUES ('A-001-0004', 'Rush Chronicles Disc 3', 'Album kompilasi lagu populer Rush tahun 1996', 'Deskripsi panjangnya Deskripsi panjangnya Deskripsi panjangnya.', 70000, 12)", Connection)

Seperti kita hanya melakukan langsung memasukkan dan tidak kembali catatan apapun kita tidak membutuhkan obyek DataReader yang kita lakukan dalam catatan Membaca kode. Kita hanya dapat menjalankan perintah, dan untuk melakukan ini kita dapat menggunakan metode ExecuteNonQuery objek Komando kami.

Command.ExecuteNonQuery()

Di bawah ini adalah kode sumber lengkap. Kami telah menambahkan label ‘Label1′ control untuk halaman kami dan mengatur properti teks itu untuk ‘Simpan Disisipkan’ sekali kode telah berhasil dijalankan. Berisi VB.net HTML dan kode yang membentuk halaman kami. Sangat penting untuk dicatat bahwa kode VB.Net ditempatkan dalam acara page_load. Ini hanya berarti bahwa setiap kali halaman meminta acara page_load dinaikkan atau menjalankan dan kode yang kami telah menulis dijalankan.

    <%@ Page Language="VB" %>
    <%@ Import Namespace="System.Data.Oledb" %>

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <script runat="server">
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)    Dim Connection As OledbConnection
    Connection = New OleDbConnection("Provider=Microsoft.Jet.Oledb.4.0;" & _
    "Data Source=" & server.mappath("sample_data.mdb"))
    Connection.Open()
    Dim Command As OleDbCommand
    Command = New OleDbCommand("INSERT INTO Item(ItemCode, ItemName, ItemDesc, ItemLongDesc, ItemPrice, ItemStock)" & _
    " VALUES ('A-001-0004', 'Rush Chronicles Disc 3', 'Album kompilasi lagu populer Rush tahun 1996', 'Deskripsi panjangnya Deskripsi panjangnya.', 70000, 12)", Connection)
    Command.ExecuteNonQuery()
    Connection.Close()

    Label1.Text="Record Inserted"
    End Sub
    </script>

    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
    <title>Insert Record into MS Access Database</title>
    </head>
    <body>
    <form id="form1" runat="server">
    <div>
    <asp:label ID=label1 runat="server" />
    </div>
    </form>
    </body>
    </html>