Bagikan melalui


Mengkueri Data dengan Kontrol SqlDataSource (VB)

oleh Scott Mitchell

Unduh PDF

Dalam tutorial sebelumnya, kami menggunakan kontrol ObjectDataSource untuk sepenuhnya memisahkan lapisan presentasi dari lapisan Akses Data. Dimulai dengan tutorial ini, kita mempelajari bagaimana kontrol SqlDataSource dapat digunakan untuk aplikasi sederhana yang tidak memerlukan pemisahan presentasi dan akses data yang ketat.

Pendahuluan

Semua tutorial yang telah kami periksa sejauh ini telah menggunakan arsitektur berjenjang yang terdiri dari lapisan presentasi, Logika Bisnis, dan Akses Data. Lapisan Akses Data (DAL) dibuat dalam tutorial pertama (Membuat Lapisan Akses Data) dan Lapisan Logika Bisnis di yang kedua (Membuat Lapisan Logika Bisnis). Dimulai dengan tutorial Menampilkan Data Dengan ObjectDataSource , kami melihat cara menggunakan kontrol ObjectDataSource baru ASP.NET 2.0 untuk secara deklaratif antarmuka dengan arsitektur dari lapisan presentasi.

Meskipun semua tutorial sejauh ini telah menggunakan arsitektur untuk bekerja dengan data, dimungkinkan juga untuk mengakses, menyisipkan, memperbarui, dan menghapus data database langsung dari halaman ASP.NET, melewati arsitektur. Melakukannya menempatkan kueri database dan logika bisnis tertentu langsung di halaman web. Untuk aplikasi yang cukup besar atau kompleks, merancang, menerapkan, dan menggunakan arsitektur berjenjang sangat penting untuk keberhasilan, pembaruan, dan pemeliharaan aplikasi. Namun, mengembangkan arsitektur yang kuat mungkin tidak perlu saat membuat aplikasi yang sangat sederhana dan satu kali.

ASP.NET 2.0 menyediakan lima kontrol sumber data bawaan SqlDataSource, AccessDataSource, ObjectDataSource, XmlDataSource, dan SiteMapDataSource. SqlDataSource dapat digunakan untuk mengakses dan memodifikasi data langsung dari database relasional, termasuk Microsoft SQL Server, Microsoft Access, Oracle, MySQL, dan lainnya. Dalam tutorial ini dan tiga berikutnya, kita akan memeriksa cara bekerja dengan kontrol SqlDataSource, mengeksplorasi cara mengkueri dan memfilter data database, serta cara menggunakan SqlDataSource untuk menyisipkan, memperbarui, dan menghapus data.

ASP.NET 2.0 Menyertakan Lima Kontrol Sumber Data Bawaan

Gambar 1: ASP.NET 2.0 Menyertakan Lima Kontrol Sumber Data Bawaan

Membandingkan ObjectDataSource dan SqlDataSource

Secara konseptual, kontrol ObjectDataSource dan SqlDataSource hanyalah proksi ke data. Seperti yang dibahas dalam tutorial Menampilkan Data Dengan ObjectDataSource , ObjectDataSource memiliki properti yang menunjukkan jenis objek yang menyediakan data dan metode yang akan dipanggil untuk memilih, menyisipkan, memperbarui, dan menghapus data dari jenis objek yang mendasar. Setelah properti ObjectDataSource dikonfigurasi, kontrol Web data seperti GridView, DetailsView, atau DataList dapat terikat ke kontrol, menggunakan metode ObjectDataSource s Select(), , Insert(), Delete(), dan Update() untuk berinteraksi dengan arsitektur yang mendasar.

SqlDataSource menyediakan fungsionalitas yang sama, tetapi beroperasi terhadap database relasional daripada pustaka objek. Dengan SqlDataSource, kita harus menentukan string koneksi database dan kueri SQL ad-hoc atau prosedur tersimpan untuk dijalankan untuk menyisipkan, memperbarui, menghapus, dan mengambil data. Metode SqlDataSource s Select(), Insert(), Update(), dan Delete() , saat dipanggil, sambungkan ke database yang ditentukan dan terbitkan kueri SQL yang sesuai. Seperti yang diilustrasikan oleh diagram berikut, metode ini melakukan pekerjaan mendengus menyambungkan ke database, mengeluarkan kueri, dan mengembalikan hasilnya.

SqlDataSource Berfungsi sebagai Proksi ke Database

Gambar 2: SqlDataSource Berfungsi sebagai Proksi ke Database

Catatan

Dalam tutorial ini kita akan fokus pada pengambilan data dari database. Dalam tutorial Menyisipkan, Memperbarui, dan Menghapus Data dengan tutorial Kontrol SqlDataSource, kita akan melihat cara mengonfigurasi SqlDataSource untuk mendukung penyisipan, pembaruan, dan penghapusan.

Kontrol SqlDataSource dan AccessDataSource

Selain kontrol SqlDataSource, ASP.NET 2.0 juga menyertakan kontrol AccessDataSource. Kedua kontrol berbeda ini mengarahkan banyak pengembang baru ke ASP.NET 2.0 untuk menduga bahwa kontrol AccessDataSource dirancang untuk bekerja secara eksklusif dengan Microsoft Access dengan kontrol SqlDataSource yang dirancang untuk bekerja secara eksklusif dengan Microsoft SQL Server. Meskipun AccessDataSource dirancang untuk bekerja secara khusus dengan Microsoft Access, kontrol SqlDataSource berfungsi dengan database relasional apa pun yang dapat diakses melalui .NET. Ini termasuk penyimpanan data yang mematuhi OleDb atau ODBC, seperti Microsoft SQL Server, Microsoft Access, Oracle, Informix, MySQL, dan PostgreSQL, di antara banyak lainnya.

Satu-satunya perbedaan antara kontrol AccessDataSource dan SqlDataSource adalah bagaimana informasi koneksi database ditentukan. Kontrol AccessDataSource hanya memerlukan jalur file ke file database Access. SqlDataSource, di sisi lain, membutuhkan string koneksi lengkap.

Langkah 1: Membuat Halaman Web SqlDataSource

Sebelum kita mulai menjelajahi cara bekerja langsung dengan data database menggunakan kontrol SqlDataSource, mari kita luangkan waktu sejenak terlebih dahulu untuk membuat halaman ASP.NET dalam proyek situs web kita yang akan kita butuhkan untuk tutorial ini dan tiga berikutnya. Mulailah dengan menambahkan folder baru bernama SqlDataSource. Selanjutnya, tambahkan halaman ASP.NET berikut ke folder tersebut Site.master , pastikan untuk mengaitkan setiap halaman dengan halaman master:

  • Default.aspx
  • Querying.aspx
  • ParameterizedQueries.aspx
  • InsertUpdateDelete.aspx
  • OptimisticConcurrency.aspx

Menambahkan Halaman ASP.NET untuk Tutorial Terkait SqlDataSource

Gambar 3: Tambahkan Halaman ASP.NET untuk Tutorial Terkait SqlDataSource

Seperti di folder lain, Default.aspx di SqlDataSource folder akan mencantumkan tutorial di bagiannya. Ingat bahwa SectionLevelTutorialListing.ascx Kontrol Pengguna menyediakan fungsionalitas ini. Oleh karena itu, tambahkan Kontrol Pengguna ini ke Default.aspx dengan menyeretnya dari Penjelajah Solusi ke tampilan Desain halaman.

Tambahkan Kontrol Pengguna SectionLevelTutorialListing.ascx ke Default.aspx

Gambar 4: Tambahkan SectionLevelTutorialListing.ascx Kontrol Pengguna ke Default.aspx (Klik untuk melihat gambar ukuran penuh)

Terakhir, tambahkan keempat halaman ini sebagai entri ke Web.sitemap file. Secara khusus, tambahkan markup berikut setelah Menambahkan Tombol Kustom ke DataList dan Repeater <siteMapNode>:

<siteMapNode url="~/SqlDataSource/Default.aspx"
    title="Using the SqlDataSource Control"
    description="Work directly with database data using the SqlDataSource control.">
    <siteMapNode url="~/SqlDataSource/Querying.aspx" title="Retrieving Database Data"
        description="Examines how to query data from a database that can then be
                     displayed  through a data Web control."/>
    <siteMapNode url="~/SqlDataSource/ParameterizedQueries.aspx"
        title="Parameterized Queries"
        description="Learn how to specify parameterized WHERE clauses in the
                     SqlDataSource's SELECT statement." />
    <siteMapNode url="~/SqlDataSource/InsertUpdateDelete.aspx"
        title="Inserting, Updating, and Deleting Database Data"
        description="See how to configure the SqlDataSource to include INSERT, UPDATE,
                      and DELETE statements." />
    <siteMapNode url="~/SqlDataSource/OptimisticConcurrency.aspx"
        title="Using Optimistic Concurrency"
        description="Explore how to augment the SqlDataSource to include support for
                     optimistic concurrency." />
</siteMapNode>

Setelah memperbarui Web.sitemap, luangkan waktu sejenak untuk melihat situs web tutorial melalui browser. Menu di sebelah kiri sekarang menyertakan item untuk tutorial pengeditan, penyisipan, dan penghapusan.

Peta Situs Sekarang Menyertakan Entri untuk Tutorial SqlDataSource

Gambar 5: Peta Situs Sekarang Menyertakan Entri untuk Tutorial SqlDataSource

Langkah 2: Menambahkan dan Mengonfigurasi Kontrol SqlDataSource

Mulailah dengan membuka Querying.aspx halaman di SqlDataSource folder dan beralihlah ke tampilan Desain. Seret kontrol SqlDataSource dari Kotak Alat ke Perancang dan atur ID ke ProductsDataSource. Seperti halnya ObjectDataSource, SqlDataSource tidak menghasilkan output yang dirender dan karenanya muncul sebagai kotak abu-abu pada permukaan desain. Untuk mengonfigurasi SqlDataSource, klik tautan Konfigurasi Sumber Data dari tag pintar SqlDataSource.

Klik Tautan Konfigurasi Sumber Data dari Tag Pintar SqlDataSource

Gambar 6: Klik Tautan Konfigurasi Sumber Data dari Tag Pintar SqlDataSource

Ini memunculkan wizard Konfigurasi Sumber Data kontrol SqlDataSource. Meskipun langkah-langkah wizard berbeda dari kontrol ObjectDataSource, tujuan akhir sama untuk memberikan detail tentang cara mengambil, menyisipkan, memperbarui, dan menghapus data melalui sumber data. Untuk SqlDataSource, ini memerlukan penentuan database yang mendasar untuk digunakan dan memberikan pernyataan SQL ad-hoc atau prosedur tersimpan.

Langkah panduan pertama meminta database. Daftar drop-down mencakup database yang ditemukan di folder aplikasi App_Data web dan yang telah ditambahkan ke simpul Koneksi Data di Server Explorer. Karena kami telah menambahkan string koneksi untuk NORTHWIND.MDF database di App_Data folder ke file proyek Web.config kami, daftar drop-down menyertakan referensi ke string koneksi tersebut, NORTHWINDConnectionString. Pilih item ini dari daftar drop-down dan klik Berikutnya.

Pilih NORTHWINDConnectionString dari Daftar Drop-Down

Gambar 7: Pilih NORTHWINDConnectionString dari Daftar Drop-Down

Setelah memilih database, wizard meminta kueri untuk mengembalikan data. Kita dapat menentukan kolom tabel atau tampilan untuk dikembalikan atau dapat memasukkan pernyataan SQL kustom atau menentukan prosedur tersimpan. Anda dapat beralih di antara pilihan ini melalui tentukan pernyataan SQL kustom atau prosedur tersimpan dan Tentukan kolom dari tabel atau lihat tombol radio.

Catatan

Untuk contoh pertama ini, mari kita gunakan opsi Tentukan kolom dari tabel atau tampilan. Kita akan kembali ke wizard nanti dalam tutorial ini dan menjelajahi opsi Tentukan pernyataan SQL kustom atau prosedur tersimpan.

Gambar 8 memperlihatkan layar Konfigurasi Pilih Pernyataan saat tombol radio Tentukan kolom dari tabel atau tampilan dipilih. Daftar drop-down berisi sekumpulan tabel dan tampilan dalam database Northwind, dengan tabel yang dipilih atau kolom tampilan yang ditampilkan dalam daftar kotak centang di bawah ini. Untuk contoh ini, mari kita kembalikan ProductIDkolom , ProductName, dan UnitPrice dari Products tabel. Seperti yang ditunjukkan Gambar 8, setelah membuat pilihan ini, wizard menunjukkan pernyataan SELECT [ProductID], [ProductName], [UnitPrice] FROM [Products]SQL yang dihasilkan .

Mengembalikan Data dari Tabel Produk

Gambar 8: Mengembalikan Data dari Products Tabel

Setelah Anda mengonfigurasi wizard untuk mengembalikan ProductIDkolom , , ProductNamedan UnitPrice dari Products tabel, klik tombol Berikutnya. Layar akhir ini memberikan kesempatan untuk memeriksa hasil kueri yang dikonfigurasi dari langkah sebelumnya. Mengklik tombol Uji Kueri menjalankan pernyataan yang dikonfigurasi SELECT dan menampilkan hasilnya dalam kisi.

Klik tombol Uji Kueri untuk Meninjau Kueri SELECT Anda

Gambar 9: Klik tombol Uji Kueri untuk Meninjau Kueri Anda SELECT

Untuk menyelesaikan panduan, klik Selesai.

Seperti objectDataSource, wizard SqlDataSource hanya menetapkan nilai ke properti kontrol, yaitu ConnectionString properti dan SelectCommand . Setelah menyelesaikan wizard, markup deklaratif kontrol SqlDataSource Anda akan terlihat mirip dengan yang berikut ini:

<asp:SqlDataSource ID="ProductsDataSource" runat="server"
    ConnectionString="<%$ ConnectionStrings:NORTHWNDConnectionString %>"
    SelectCommand="SELECT [ProductID], [ProductName], [UnitPrice] FROM [Products]">
</asp:SqlDataSource>

Properti ConnectionString menyediakan informasi tentang cara menyambungkan ke database. Properti ini dapat diberi nilai string koneksi lengkap yang dikodekan secara permanen atau dapat menunjuk ke string koneksi di Web.config. Untuk mereferensikan nilai string koneksi di Web.config, gunakan sintaks <%$ expressionPrefix:expressionValue %>. Biasanya, expressionPrefix<connectionStrings> Namun, sintaks dapat digunakan untuk mereferensikan <appSettings> elemen atau konten dari file sumber daya. Lihat Ringkasan Ekspresi ASP.NET untuk informasi selengkapnya tentang sintaks ini.

Properti SelectCommand menentukan pernyataan SQL ad-hoc atau prosedur tersimpan untuk dijalankan untuk mengembalikan data.

Langkah 3: Menambahkan Kontrol Web Data dan Mengikatnya ke SqlDataSource

Setelah SqlDataSource dikonfigurasi, SqlDataSource dapat terikat ke kontrol Web data, seperti GridView atau DetailsView. Untuk tutorial ini, mari kita tampilkan data dalam GridView. Dari Kotak Alat, seret GridView ke halaman dan ikat ke ProductsDataSource SqlDataSource dengan memilih sumber data dari daftar drop-down di tag pintar GridView.

Menambahkan GridView dan Mengikatnya ke Kontrol SqlDataSource

Gambar 10: Tambahkan GridView dan Ikat ke Kontrol SqlDataSource (Klik untuk melihat gambar ukuran penuh)

Setelah Anda memilih kontrol SqlDataSource dari daftar drop-down di tag pintar GridView, Visual Studio akan secara otomatis menambahkan BoundField atau CheckBoxField ke GridView untuk setiap kolom yang dikembalikan oleh kontrol sumber data. Karena SqlDataSource mengembalikan tiga kolom ProductIDdatabase , , ProductNamedan UnitPrice ada tiga bidang di GridView.

Luangkan waktu sejenak untuk mengonfigurasi GridView tiga BoundFields. ProductName Ubah properti bidang menjadi HeaderText Nama Produk dan UnitPrice bidang menjadi Harga. Format juga UnitPrice bidang sebagai mata uang. Setelah melakukan modifikasi ini, markup deklaratif GridView Anda akan terlihat mirip dengan yang berikut ini:

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
    DataKeyNames="ProductID" DataSourceID="ProductsDataSource"
    EnableViewState="False">
    <Columns>
        <asp:BoundField DataField="ProductID" HeaderText="ProductID"
            InsertVisible="False" ReadOnly="True" SortExpression="ProductID" />
        <asp:BoundField DataField="ProductName" HeaderText="Product Name"
            SortExpression="ProductName" />
        <asp:BoundField DataField="UnitPrice" HeaderText="Price"
            SortExpression="UnitPrice" DataFormatString="{0:c}"
            HtmlEncode="False" />
    </Columns>
</asp:GridView>

Kunjungi halaman ini melalui browser. Seperti yang ditunjukkan Gambar 11, GridView mencantumkan setiap produk ProductID, ProductName, dan UnitPrice nilai.

GridView Menampilkan Setiap Nilai ProductID, ProductName, dan UnitPrice Produk

Gambar 11: Tampilan Kisi Menampilkan Setiap Produk , ProductID, ProductNamedan UnitPrice Nilai (Klik untuk melihat gambar ukuran penuh)

Ketika halaman dikunjungi, GridView memanggil metode kontrol Select() sumber datanya. Ketika kita menggunakan kontrol ObjectDataSource, ini disebut ProductsBLL metode kelas s GetProducts() . Namun, dengan SqlDataSource, metode ini Select() membuat koneksi ke database yang ditentukan dan mengeluarkan SelectCommand (SELECT [ProductID], [ProductName], [UnitPrice] FROM [Products], dalam contoh ini). SqlDataSource mengembalikan hasilnya yang kemudian dijumlahkan oleh GridView, membuat baris di GridView untuk setiap rekaman database yang dikembalikan.

Fitur Kontrol Web Data Bawaan dan Kontrol SqlDataSource

Secara umum, fitur yang melekat pada data Web mengontrol penomoran halaman, pengurutan, pengeditan, penghapusan, penyisipan, dan sebagainya khusus untuk kontrol Web data dan tidak bergantung pada kontrol sumber data yang digunakan. Artinya, GridView dapat menggunakan halaman bawaannya, mengurutkan, mengedit, dan menghapus apakah itu terikat ke ObjectDataSource atau SqlDataSource. Namun, fitur kontrol Web data tertentu sensitif terhadap kontrol sumber data yang digunakan atau konfigurasi kontrol sumber data.

Misalnya, dalam tutorial Efisien Penomoran Melalui Data Dalam Jumlah Besar, kami membahas caranya, secara default, logika penomoran halaman untuk kontrol Web data secara naif mengembalikan semua rekaman dari sumber data yang mendasar dan kemudian hanya menampilkan subset rekaman yang sesuai yang diberikan indeks halaman saat ini dan jumlah rekaman yang ditampilkan per halaman. Model ini sangat tidak efisien ketika paging melalui tataan hasil yang cukup besar. Untungnya, ObjectDataSource dapat dikonfigurasi untuk mendukung halaman kustom, yang hanya mengembalikan subset rekaman yang tepat untuk ditampilkan. Kontrol SqlDataSource, bagaimanapun, tidak memiliki properti untuk menerapkan halaman kustom.

Kehalusan lain dengan penomoran dan pengurutan muncul dengan SqlDataSource. Secara default, data yang dikembalikan dari SqlDataSource dapat di-paged atau diurutkan melalui GridView. Untuk menunjukkan hal ini, periksa opsi Aktifkan Penomoran dan Aktifkan Pengurutan di tag pintar GridView di Querying.aspx dan verifikasi bahwa ini berfungsi seperti yang diharapkan.

Pengurutan dan penomoran berfungsi karena SqlDataSource mengambil data database ke dalam Himpunan Data yang diketik secara longgar. Jumlah total rekaman yang dikembalikan oleh kueri aspek penting untuk menerapkan penomoran halaman dapat dipastikan dari Himpunan Data. Selain itu, hasil Himpunan Data dapat diurutkan melalui DataView. Kemampuan ini secara otomatis digunakan oleh SqlDataSource saat GridView meminta halaman atau data yang diurutkan.

SqlDataSource dapat dikonfigurasi untuk mengembalikan DataReader alih-alih DataSet dengan mengubah propertinya DataSourceMode dari DataSet (default) menjadi DataReader. Menggunakan DataReader mungkin lebih disukai dalam situasi saat meneruskan hasil SqlDataSource ke kode yang ada yang mengharapkan DataReader. Selain itu, karena DataReaders adalah objek yang jauh lebih sederhana daripada Himpunan Data, mereka menawarkan performa yang lebih baik. Namun, jika Anda membuat perubahan ini, kontrol Web data tidak dapat mengurutkan atau halaman karena SqlDataSource tidak dapat memastikan berapa banyak rekaman yang dikembalikan oleh kueri, juga tidak menawarkan teknik apa pun untuk mengurutkan data yang dikembalikan.

Langkah 4: Menggunakan Pernyataan SQL Kustom atau Prosedur Tersimpan

Saat mengonfigurasi kontrol SqlDataSource, kueri yang digunakan untuk mengembalikan data dapat ditentukan dalam salah satu dari dua pendekatan sebagai pernyataan SQL kustom atau prosedur tersimpan, atau sebagai kolom dari tabel atau tampilan yang ada. Di Langkah 2 kami memeriksa pemilihan kolom dari Products tabel. Mari kita lihat menggunakan pernyataan SQL kustom.

Tambahkan kontrol GridView lain ke Querying.aspx halaman dan pilih untuk membuat sumber data baru dari daftar drop-down di tag pintar. Selanjutnya, tunjukkan bahwa data akan ditarik dari database, ini akan membuat kontrol SqlDataSource baru. Beri nama kontrol ProductsWithCategoryInfoDataSource.

Membuat Kontrol SqlDataSource Baru Bernama ProductsWithCategoryInfoDataSource

Gambar 12: Buat Kontrol SqlDataSource Baru Bernama ProductsWithCategoryInfoDataSource

Layar berikutnya meminta kami untuk menentukan database. Seperti yang kita lakukan kembali di Gambar 7, pilih NORTHWINDConnectionString dari daftar drop-down dan klik Berikutnya. Di layar Konfigurasikan Pilih Pernyataan, pilih tombol radio Tentukan pernyataan SQL kustom atau prosedur tersimpan dan klik Berikutnya. Ini akan memunculkan layar Tentukan Pernyataan Kustom atau Prosedur Tersimpan, yang menawarkan tab berlabel SELECT, UPDATE, INSERT, dan DELETE. Di setiap tab, Anda dapat memasukkan pernyataan SQL kustom ke dalam kotak teks atau memilih prosedur tersimpan dari daftar drop-down. Dalam tutorial ini kita akan melihat memasukkan pernyataan SQL kustom; tutorial berikutnya mencakup contoh yang menggunakan prosedur tersimpan.

Masukkan Pernyataan SQL Kustom atau Pilih Prosedur Tersimpan

Gambar 13: Masukkan Pernyataan SQL Kustom atau Pilih Prosedur Tersimpan

Pernyataan SQL kustom dapat dimasukkan dengan tangan ke dalam kotak teks atau dapat dibangun secara grafis dengan mengklik tombol Penyusun Kueri. Dari Pembangun Kueri atau kotak teks, gunakan kueri berikut untuk mengembalikan ProductID bidang dan ProductName dari Products tabel menggunakan JOIN untuk mengambil produk CategoryName dari Categories tabel:

SELECT Products.ProductID, Products.ProductName, Categories.CategoryName
FROM Categories
    INNER JOIN Products ON
        Categories.CategoryID = Products.CategoryID

Anda bisa Membuat Kueri Secara Grafis Menggunakan Penyusun Kueri

Gambar 14: Anda dapat Membuat Kueri Secara Grafis Menggunakan Penyusun Kueri

Setelah menentukan kueri, klik Berikutnya untuk melanjutkan ke layar Uji Kueri. Klik Selesai untuk menyelesaikan wizard SqlDataSource.

Setelah menyelesaikan wizard, GridView akan menambahkan tiga BoundFields ke dalamnya yang ProductIDmenampilkan kolom , ProductName, dan CategoryName yang dikembalikan dari kueri dan menghasilkan markup deklaratif berikut:

<asp:GridView ID="GridView2" runat="server" AutoGenerateColumns="False"
    DataKeyNames="ProductID" DataSourceID="ProductsWithCategoryInfoDataSource"
    EnableViewState="False">
    <Columns>
        <asp:BoundField DataField="ProductID" HeaderText="ProductID"
            InsertVisible="False" ReadOnly="True" SortExpression="ProductID" />
        <asp:BoundField DataField="ProductName" HeaderText="ProductName"
            SortExpression="ProductName" />
        <asp:BoundField DataField="CategoryName" HeaderText="CategoryName"
            SortExpression="CategoryName" />
    </Columns>
</asp:GridView>
<asp:SqlDataSource ID="ProductsWithCategoryInfoDataSource" runat="server"
    ConnectionString="<%$ ConnectionStrings:NORTHWNDConnectionString %>"
    SelectCommand="
        SELECT Products.ProductID, Products.ProductName, Categories.CategoryName
        FROM Categories
        INNER JOIN Products ON Categories.CategoryID = Products.CategoryID">
</asp:SqlDataSource>

GridView Menunjukkan Setiap ID Produk, Nama, dan Nama Kategori Terkait

Gambar 15: GridView Menunjukkan Setiap ID Produk, Nama, dan Nama Kategori Terkait (Klik untuk melihat gambar ukuran penuh)

Ringkasan

Dalam tutorial ini kita melihat cara mengkueri dan menampilkan data menggunakan kontrol SqlDataSource. Seperti ObjectDataSource, SqlDataSource berfungsi sebagai proksi, memberikan pendekatan deklaratif untuk mengakses data. Propertinya menentukan database yang akan disambungkan dan kueri SQL SELECT untuk dijalankan; mereka dapat ditentukan melalui jendela Properti atau dengan menggunakan wizard Konfigurasi Sumber Data.

Contoh SELECT kueri yang kami periksa dalam tutorial ini mengembalikan semua rekaman dari kueri yang ditentukan. Kontrol SqlDataSource, namun, dapat menyertakan WHERE klausul dengan parameter yang nilainya ditetapkan secara terprogram atau secara otomatis ditarik dari sumber tertentu. Kami akan memeriksa cara membuat dan menggunakan kueri berparameter dalam tutorial berikutnya!

Selamat Pemrograman!

Bacaan lebih lanjut

Untuk informasi selengkapnya tentang topik yang dibahas dalam tutorial ini, lihat sumber daya berikut:

Tentang Penulis

Scott Mitchell, penulis tujuh buku ASP/ASP.NET dan pendiri 4GuysFromRolla.com, telah bekerja sama dengan teknologi Microsoft Web sejak 1998. Scott bekerja sebagai konsultan, pelatih, dan penulis independen. Buku terbarunya adalah Sams Teach Yourself ASP.NET 2.0 dalam 24 Jam. Dia dapat dijangkau di mitchell@4GuysFromRolla.com.

Terima kasih khusus untuk

Seri tutorial ini ditinjau oleh banyak peninjau yang bermanfaat. Peninjau utama untuk tutorial ini adalah Susan Connery, Bernadette Leigh, dan David Suru. Tertarik untuk meninjau artikel MSDN saya yang akan datang? Jika demikian, hubungi saya di mitchell@4GuysFromRolla.com.