DataSet objek, bagian penting dari akses data di Microsoft.NET Framework, adalah objek dalam memori yang dapat menampung meja, pandangan, dan hubungan. Artikel ini menunjukkan bagaimana untuk mengisi
DataSet objek dengan hasil dari satu atau lebih database queries dan bagaimana untuk mengakses data setelah itu load ke
DataSet objek.
Persyaratan
Daftar berikut menguraikan fitur perangkat keras, perangkat lunak, jaringan infrastruktur, dan paket layanan yang Anda butuhkan:
- Microsoft Windows 2000 Professional, Windows 2000 Server, Windows 2000 Advanced Server, atau Windows NT 4.0 Server
- Microsoft SQL Server 7.0, Microsoft SQL Server 2000, atau Microsoft Data mesin dengan sampel database Pub diinstal
- Microsoft Visual Studio.NET
Artikel ini mengasumsikan bahwa Anda sudah familiar dengan topik-topik berikut:
- Database terminologi
- Structured Query Language (SQL)
Mengisi DataSet
Menggunakan berbagai benda dari dalam
System.data namespace, Anda dapat menyambung ke server database, menjalankan query, dan memiliki hasil yang ditempatkan ke dalam
DataSet objek. The
DataSet adalah objek terputus. Oleh karena itu, setelah data dimuat, koneksi ke database tidak lagi digunakan sampai Anda ingin memuat data lebih banyak atau memperbarui server dengan perubahan yang Anda buat ke copy dalam memori Anda informasi.
Untuk memuat data dari database ke dalam
DataSet, ikuti langkah berikut:
- Mulai Visual Studio.NET.
- Membuat proyek aplikasi konsol baru dalam Visual C#.NET. Visual Studio.NET menciptakan kelas statis untuk Anda, bersama dengan kosong Utama prosedur.
- Pastikan bahwa proyek referensi Sistem dan System.data namespaces.
- Penggunaan menggunakan pernyataan di Sistem, System.data, dan System.data.SqlClient namespaces sehingga Anda tidak perlu memenuhi syarat Deklarasi dari namespaces ini kemudian dalam kode Anda. Anda harus menggunakan pernyataan-pernyataan ini sebelum deklarasi lain.
using System;
using System.Data;
using System.Data.SqlClient;
- Langkah pertama untuk mendapatkan data dari database untuk DataSet adalah untuk membangun koneksi database, yang memerlukan System.data.SqlClient.SqlCommand objek dan rangkaian sambungan. Rangkaian sambungan dalam kode untuk mengikuti menghubungkan server SQL Server yang terletak pada komputer lokal (komputer di mana kode berjalan). Anda harus memodifikasi string koneksi ini yang sesuai untuk lingkungan Anda. Setelah SqlConnection objek dibuat, panggilan Terbuka metode dari objek untuk membangun link sebenarnya database.
string sConnectionString;
sConnectionString = "Password=myPassword;User ID=myUserID;"
+ "Initial Catalog=pubs;"
+ "Data Source=(local)";
SqlConnection objConn
= new SqlConnection(sConnectionString);
objConn.Open();
- Membuat DataAdapter objek, yang mewakili hubungan antara database dan Anda DataSet objek. Anda dapat menentukan SQL atau jenis lain dari perintah yang digunakan untuk mengambil data sebagai bagian dari objek konstruktor DataAdapter. Sampel ini menggunakan pernyataan SQL yang mengambil catatan dari penulis tabel dalam database Pub.
SqlDataAdapter daAuthors
= new SqlDataAdapter("Select * From Authors", objConn);
- Anda harus menyatakan dan membuat sebuah instance dari DataSet objek, saat Anda dapat memberikan nama untuk seluruh DataSet sebelum Anda dapat mulai untuk memuat data apapun. Nama mungkin berisi beberapa meja yang berbeda.
DataSet dsPubs = new DataSet("Pubs");
- The SqlDataAdapter kelas menyediakan dua metode, Mengisi dan FillSchema, yang sangat penting untuk memuat data ini. Kedua metode ini memuat informasi ke DataSet. Mengisi beban data itu sendiri, dan FillSchema beban semua tersedia metadata tentang meja tertentu (seperti nama kolom, kunci primer dan kendala). Cara yang baik untuk menangani data yang memuat adalah dengan menjalankan FillSchema diikuti oleh Mengisi. Misalnya:
daAuthors.FillSchema(dsPubs,SchemaType.Source, "Authors");
daAuthors.Fill(dsPubs,"Authors");
Jika Anda hanya menggunakan Mengisi, Anda hanya dapat memuat metadata dasar yang diperlukan untuk menggambarkan kolom nama dan data jenis. The Mengisi metode tidak memuat informasi kunci utama. Untuk mengubah perilaku default ini, Anda dapat mengatur MissingSchemaAction properti DataAdapter objek untuk MissingSchemaAction.AddWithKey, yang memuat metadata kunci utama bersama dengan informasi default. Misalnya:
daAuthors.MissingSchemaAction = MissingSchemaAction.AddWithKey;
daAuthors.Fill(dsPubs,"Authors");
- Data sekarang tersedia sebagai individu DataTable objek dalam Tabel Koleksi DataSet. Jika Anda menentukan nama tabel dalam panggilan untuk FillSchema dan Mengisi, Anda dapat menggunakan nama itu untuk mengakses tabel spesifik yang Anda inginkan.
DataTable tblAuthors;
tblAuthors = dsPubs.Tables["Authors"];
- Anda dapat menggunakan untuk masing-masing loop untuk loop melalui semua DataRow objek dalam Baris Koleksi DataTable. Ini memberi Anda akses ke setiap baris meja. Anda dapat mengakses kolom dengan nama atau indeks posisional (dengan '0' menjadi posisi kolom pertama). Misalnya:
foreach (DataRow drCurrent in tblAuthors.Rows)
{
Console.WriteLine("{0} {1}",
drCurrent["au_fname"].ToString(),
drCurrent["au_lname"].ToString());
}
Console.ReadLine();
- Menyimpan proyek Anda. Pada Debug menu, klik Mulai untuk menjalankan proyek Anda dan memastikan bahwa ia bekerja.
Daftar kode lengkap
using System;
using System.Data;
using System.Data.SqlClient;
namespace PopulateDataSet
{
/// <summary>
/// Summary description for Class1.
/// </summary>
class Class1
{
static void Main(string[] args)
{
string sConnectionString;
sConnectionString = "Password=myPassword;User ID=myUserID;"
+ "Initial Catalog=pubs;"
+ "Data Source=(local)";
SqlConnection objConn
= new SqlConnection(sConnectionString);
objConn.Open();
SqlDataAdapter daAuthors
= new SqlDataAdapter("Select * From Authors", objConn);
DataSet dsPubs = new DataSet("Pubs");
daAuthors.FillSchema(dsPubs,SchemaType.Source, "Authors");
daAuthors.Fill(dsPubs,"Authors");
DataTable tblAuthors;
tblAuthors = dsPubs.Tables["Authors"];
foreach (DataRow drCurrent in tblAuthors.Rows)
{
Console.WriteLine("{0} {1}",
drCurrent["au_fname"].ToString(),
drCurrent["au_lname"].ToString());
}
Console.ReadLine();
}
}
}
Untuk informasi lebih lanjut tentang ADO.NET,
DataSet benda, dan SQL, merujuk ke Web Microsoft berikut: