ID Artikel: 314145 - Kajian Terakhir: 24 September 2011 - Revisi: 2.0

Cara mengisi DataSet objek dari Database dengan menggunakan Visual C#.NET

Tips SistemThis article applies to a different operating system than the one you are using. Article content that may not be relevant to you is disabled.

Pada Halaman ini

Perbesar semua | Perkecil semua

RINGKASAN

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:
  1. Mulai Visual Studio.NET.
  2. Membuat proyek aplikasi konsol baru dalam Visual C#.NET. Visual Studio.NET menciptakan kelas statis untuk Anda, bersama dengan kosong Utama prosedur.
  3. Pastikan bahwa proyek referensi Sistem dan System.data namespaces.
  4. 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;
    					
  5. 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();
    					
  6. 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);
    					
  7. 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");
    					
  8. 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");
    					
  9. 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"];
    					
  10. 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();
    					
  11. 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();
		}
	}
}
				

REFERENSI

Untuk informasi lebih lanjut tentang ADO.NET, DataSet benda, dan SQL, merujuk ke Web Microsoft berikut:
"Menyelam ke dalam akses Data" ( Suara-suara MSDN kolom oleh Dino Esposito)
http://msdn2.Microsoft.com/en-us/library/ms810293.aspx (http://msdn2.microsoft.com/en-us/library/ms810293.aspx)

ADO.NET untuk ADO Programmer
http://msdn2.Microsoft.com/en-us/library/ms973217.aspx (http://msdn2.microsoft.com/en-us/library/ms973217.aspx)

MSDN Online.Pusat Pengembang NET
http://MSDN.Microsoft.com/en-US/netframework/default.aspx (http://msdn.microsoft.com/en-us/netframework/default.aspx)

Berlaku bagi:
  • Microsoft ADO.NET 1.1
  • Microsoft Visual C# .NET 2002 Standard Edition
  • Microsoft Visual C# .NET 2003 Standard Edition
Kata kunci: 
kbhowtomaster kbsqlclient kbsystemdata kbmt KB314145 KbMtid
Penerjemahan MesinPenerjemahan Mesin
PENTING: Artikel ini diterjemahkan menggunakan perangkat lunak mesin penerjemah Microsoft dan bukan oleh seorang penerjemah. Microsoft menawarkan artikel yang diterjemahkan oleh seorang penerjemah maupun artikel yang diterjemahkan menggunakan mesin sehingga Anda akan memiliki akses ke seluruh artikel baru yang diterbitkan di Pangkalan Pengetahuan (Knowledge Base) dalam bahasa yang Anda gunakan. Namun, artikel yang diterjemahkan menggunakan mesin tidak selalu sempurna. Artikel tersebut mungkin memiliki kesalahan kosa kata, sintaksis, atau tata bahasa, hampir sama seperti orang asing yang berbicara dalam bahasa Anda. Microsoft tidak bertanggung jawab terhadap akurasi, kesalahan atau kerusakan yang disebabkan karena kesalahan penerjemahan konten atau penggunaannya oleh para pelanggan. Microsoft juga sering memperbarui perangkat lunak mesin penerjemah.
Klik disini untuk melihat versi Inggris dari artikel ini:314145  (http://support.microsoft.com/kb/314145/en-us/ )