Bagikan melalui


Panduan: Menampilkan data dari database SQL Server dalam kontrol DataGrid

Dalam panduan ini, Anda mengambil data dari database SQL Server dan menampilkan data tersebut dalam kontrol DataGrid. Anda menggunakan ADO.NET Entity Framework untuk membuat kelas entitas yang mewakili data, dan menggunakan LINQ untuk menulis kueri yang mengambil data yang ditentukan dari kelas entitas.

Prasyarat

Anda memerlukan komponen berikut untuk menyelesaikan panduan ini:

  • Visual Studio.

  • Akses ke instans SQL Server atau SQL Server Express yang berjalan yang memiliki database sampel AdventureWorks yang melekat padanya. Anda dapat mengunduh database AdventureWorks dari GitHub.

Membuat kelas entitas

  1. Buat proyek Aplikasi WPF baru di Visual Basic atau C#, dan beri nama DataGridSQLExample.

  2. Di Penjelajah Solusi, klik kanan proyek Anda, arahkan ke Tambahkan, lalu pilih Item Baru.

    Kotak dialog Tambahkan Item Baru muncul.

  3. Di panel Templat terinstal, pilih Data dan dalam daftar templat, pilih ADO.NET Model Data Entitas.

    templat item Model Data Entitas ADO.NET

  4. Beri nama file AdventureWorksModel.edmx lalu klik Tambahkan.

    Panduan Model Data Entitas muncul.

  5. Di layar Pilih Konten Model, pilih EF Designer dari database lalu klik Berikutnya.

  6. Di layar Pilih Koneksi Data Anda, berikan koneksi ke database AdventureWorksLT2008 Anda. Untuk informasi selengkapnya, lihat Pilih Kotak Dialog Koneksi Data Anda.

    Pastikan bahwa nama adalah AdventureWorksLT2008Entities dan bahwa kotak centang Simpan pengaturan koneksi entitas di App.Config sebagai dipilih, lalu klik Berikutnya.

  7. Di layar Pilih Objek Database Anda, perluas simpul Tabel, dan pilih tabel Produk dan tabel ProdukKategori.

    Anda dapat menghasilkan kelas entitas untuk semua tabel; namun, dalam contoh ini Anda hanya mengambil data dari dua tabel tersebut.

    Pilih Produk dan KategoriProduk dari tabel

  8. Klik Selesai.

    Entitas Product dan ProductCategory ditampilkan di Perancang Entitas.

    model entitas Produk dan KategoriProduk

Mengambil dan menyajikan data

  1. Buka file MainWindow.xaml.

  2. Atur properti Width pada Window ke 450.

  3. Di editor XAML, tambahkan tag DataGrid berikut antara tag <Grid> dan </Grid> untuk menambahkan DataGrid bernama dataGrid1.

    <DataGrid Name="dataGrid1" />
    

    Jendela dengan DataGrid

  4. Pilih Window.

  5. Menggunakan jendela Properti atau editor XAML, buat penanganan aktivitas untuk Window bernama Window_Loaded untuk peristiwa Loaded. Untuk informasi selengkapnya, lihat Cara: Membuat Pengendali Acara Sederhana.

    Berikut ini menunjukkan XAML untuk MainWindow.xaml.

    Nota

    Jika Anda menggunakan Visual Basic, di baris pertama MainWindow.xaml, ganti x:Class="DataGridSQLExample.MainWindow" dengan x:Class="MainWindow".

    <Window x:Class="DataGridSQLExample.MainWindow"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            Title="MainWindow" Height="350" Width="450" 
            Loaded="Window_Loaded">
        <Grid>
            <DataGrid Name="dataGrid1" />
        </Grid>
    </Window>
    
  6. Buka file code-behind (MainWindow.xaml.vb atau MainWindow.xaml.cs) untuk Window.

  7. Tambahkan kode berikut untuk mengambil nilai-nilai tertentu saja dari tabel-tabel yang digabungkan dan atur properti ItemsSource dari DataGrid dengan hasil kueri.

    using System.Data.Entity.Core.Objects;
    using System.Linq;
    using System.Windows;
    
    namespace DataGridSQLExample
    {
        /// <summary>
        /// Interaction logic for MainWindow.xaml
        /// </summary>
        public partial class MainWindow : Window
        {
            AdventureWorksLT2008Entities dataEntities = new AdventureWorksLT2008Entities();
    
            public MainWindow()
            {
                InitializeComponent();
            }
    
            private void Window_Loaded(object sender, RoutedEventArgs e)
            {
                var query =
                from product in dataEntities.Products
                where product.Color == "Red"
                orderby product.ListPrice
                select new { product.Name, product.Color, CategoryName = product.ProductCategory.Name, product.ListPrice };
    
                dataGrid1.ItemsSource = query.ToList();
            }
        }
    }
    
    Imports System.Data.Objects
    
    Class MainWindow
        Dim dataEntities As AdventureWorksLT2008Entities = New AdventureWorksLT2008Entities
    
        Private Sub Window_Loaded(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles MyBase.Loaded
            Dim products As ObjectQuery(Of Product) = dataEntities.Products
    
            Dim query = _
                From product In products _
                Where product.Color = "Red" _
                Order By product.ListPrice _
                Select product.Name, product.Color, CategoryName = product.ProductCategory.Name, product.ListPrice
    
            dataGrid1.ItemsSource = query.ToList()
        End Sub
    End Class
    
  8. Jalankan contoh.

    Anda akan melihat DataGrid yang menampilkan data.

    DataGrid dengan data dari database SQL

Lihat juga