Anda sedang offline saat ini, menunggu internet Anda untuk menyambung kembali

CARA: Menerapkan DataSet membuat tabel penolong kelas dalam Visual C#.NET

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:325938
Untuk Microsoft Visual Basic.NET versi artikel ini, lihat
325698 HOWTO: Menerapkan class helper DataSet CREATE TABLE dalam Visual Basic.NET
CATATAN: Artikel ini adalah salah satu dari serangkaian DataSetHelper artikel. Anda dapat menggabungkan kode DataSetHelper kelas yang tercantum dalam artikel ini dengan kode yang disediakan di lain DataSetHelper artikel untuk membuat kelas tunggal dengan set fitur yang lebih komprehensif.

Artikel ini merujuk kepada Microsoft berikut.NET Framework kelas perpustakaan namespace:
  • System.data

DALAM TUGAS INI

RINGKASAN
Artikel ini selangkah demi selangkah menjelaskan bagaimana menerapkan dan bagaimana menggunakan DataSetHelper kelas yang mencakup kode contoh membuat tabel dari berpembatas koma daftar jenis bidang nama dan data. Artikel ini mencakup metode kedua sehingga Anda juga dapat menentukan kolom kunci utama.

The DataSetHelper termasuk kelas DataSet variabel anggota. Opsional, Anda dapat menetapkan yang ada DataSet keberatan DataSet variabel anggota. Jika variabel anggota poin untuk berlaku DataSet, apapun DataTable objek yang CreateTable metode menciptakan ditambahkan ke DataSet. Dalam kedua kasus, panggilan metode mengembalikan referensi ke DataTable objek.

Untuk informasi lebih lanjut tentang DataSet objek, klik nomor artikel di bawah ini untuk melihat artikel di dalam Basis Pengetahuan Microsoft:
313485 INFO: Peta jalan untuk ADO.NET DataSet, DataView dan DataViewManager
back to the top

Persyaratan

Daftar berikut menguraikan fitur perangkat keras, perangkat lunak, jaringaninfrastruktur, dan paket layanan yang Anda butuhkan:
  • Microsoft Windows XP, Windows 2000, atau Windows NT 4.0 Paket Layanan 6a
  • Microsoft Visual Studio.NET
Artikel ini mengasumsikan bahwa Anda sudah familiar dengan topik-topik berikut:
  • Visual Basic.Sintaks bersih
  • ADO.Dasar-dasar bersih dan sintaks
back to the top

DataSetHelper Shell kelas

Kode dalam bagian ini menyatakan shell kelas yang semua DataSetHelper Artikel menambahkan metode dan variabel anggota.
  1. Mulai Visual Studio.NET.
  2. Pada File menu, titik Baru, lalu klik Proyek.
  3. Dalam Proyek baru kotak dialog, klik Visual C# proyek di bawah Jenis proyek, lalu klik Perpustakaan kelas di bawah Template.
  4. Dalam Nama kotak, jenis DataSetHelper.
  5. Ganti kode kelas dengan kode berikut:
    public class DataSetHelper{	public DataSet ds;	public DataSetHelper(DataSet DataSet)	{		ds = DataSet;	}	public DataSetHelper()	{		ds = null;	}}					
    Anda dapat menggunakan overloads dua untuk constructor untuk membuat sebuah instance dari kelas dengan atau tanpa referensi untuk berlaku DataSet. Untuk kelas yang berisi referensi untuk berlaku DataSet, the DataTable benda-benda yang metode kembali juga ditambahkan secara otomatis ke DataSet.
back to the top

CreateTable metode (opsi 1)

Bagian ini berisi kode untuk utama CreateTable metode.

Ini adalah contoh yang menyerukan Konvensi ini CreateTable metode:
DataTable dt = dsHelper.CreateTable("CT1", "Name String, ID Int32 Required, Field3 String Name + ID");				
Kode ini menciptakan baru DataTable dengan TableName TestTable dan tiga bidang (nama, ID, dan Field3). Bidang nama dan Field3 adalah jenis System.string, dan bidang ID diisi dan jenis System.Int32. Field3 berisi hasil dari ekspresi "+ nama ID".

Menggunakan sintaks berikut untuk menentukan bidang dalam daftar bidang:
fieldname datatype[ REQUIRED|expression], ...				
  • Tipe data yang didukung adalah setiap anggota Sistem namespace, seperti Int32 atau String anggota. Anda tidak dapat menggunakan jenis spesifik-bahasa data, seperti int atau Bilangan bulat. Juga, tidak menentukan Sistem namespace dalam daftar bidang; namespace ini tersirat.
  • Secara default, semua bidang opsional. Menambahkan kata REQUIRED setelah data type untuk melarang nilai-nilai NULL di lapangan.
  • Ekspresi adalah setiap ungkapan yang sah yang DataColumn kelas mendukung.
Untuk panggilan ini CreateTable metode, menambahkan metode berikut untuk DataSetHelper kelas yang Anda buat di "DataSetHelper Shell kelas"bagian:
public DataTable CreateTable(string TableName, string FieldList){		DataTable dt = new DataTable(TableName);	DataColumn dc;	string[] Fields= FieldList.Split(',');    	string[] FieldsParts;	string Expression;	foreach(string Field in Fields)	{		FieldsParts = Field.Trim().Split(" ".ToCharArray(), 3); // allow for spaces in the expression		// add fieldname and datatype					if (FieldsParts.Length == 2)		{				dc = dt.Columns.Add(FieldsParts[0].Trim(), Type.GetType("System." + FieldsParts[1].Trim(),true,true));			dc.AllowDBNull = true;		}		else if (FieldsParts.Length == 3)  // add fieldname, datatype, and expression		{			Expression = FieldsParts[2].Trim();			if (Expression.ToUpper() == "REQUIRED")			{								dc = dt.Columns.Add(FieldsParts[0].Trim(), Type.GetType("System." + FieldsParts[1].Trim(), true, true));				dc.AllowDBNull = false;			}			else			{				dc = dt.Columns.Add(FieldsParts[0].Trim(), Type.GetType("System." + FieldsParts[1].Trim(), true, true), Expression);			}		}		else		{			throw new ArgumentException("Invalid field definition: '" + Field + "'.");		}	}	if (ds != null) 	{	        ds.Tables.Add(dt);	}	return dt;}				
back to the top

CreateTable metode (opsi 2)

Bagian ini berisi kode untuk kedua CreateTable metode yang sama sebagai metode pertama kecuali bahwa kode ini menambahkan daftar bidang kunci berpembatas koma. Metode ini panggilan pertama CreateTable metode untuk membuat DataTable, mem-parsing daftar bidang kunci, dan kemudian menetapkan DataTable.PrimaryKey properti.

Ini adalah contoh yang menyerukan Konvensi ini CreateTable metode:
DataTable dt = dsHelper.CreateTable("CT2","Name String, ID Int32 Required, Field3 String Name + ID", "ID");				
Kode ini menciptakan baru DataTable dengan TableName TestTable dan tiga bidang. Dalam kode ini, bidang ID adalah kunci utama. Anda dapat menetapkan lebih dari satu nama field kunci (misalnya, ID dan nama).

Untuk panggilan ini CreateTable metode, menambahkan metode berikut untuk DataSetHelper kelas yang Anda buat di "DataSetHelper Shell kelas"bagian:
public DataTable CreateTable(string TableName, string FieldList , string KeyFieldList){	DataTable dt = CreateTable(TableName, FieldList);	string[] KeyFields = KeyFieldList.Split(',');	if (KeyFields.Length > 0)	{		DataColumn[] KeyFieldColumns= new DataColumn[KeyFields.Length];								        int i;		for (i = 1; i==KeyFields.Length-1 ; ++i)		{		        KeyFieldColumns[i] = dt.Columns[KeyFields[i].Trim()];		}		dt.PrimaryKey = KeyFieldColumns;		}	return dt;  // You do not have to add to DataSet - The CreateTable call does that}				
back to the top

Menguji aplikasi

  1. Simpan dan kemudian kompilasi DataSetHelper kelas yang Anda buat dalam bagian sebelumnya.
  2. Ikuti langkah berikut untuk membuat baru Visual C# aplikasi Windows:
    1. Mulai Visual Studio.NET.
    2. Pada Berkas menu, titik Baru, lalu klik Project.
    3. Dalam Proyek baru kotak dialog, klik Visual C# proyek di bawah Jenis proyek, lalu klik Aplikasi Windows di bawah Pola acu.
  3. Dalam solusi Explorer, klik kanan solusi, dan kemudian klik Menambahkan ada proyek. Tambahkan DataSetHelper proyek.
  4. Pada Project menu, klik Menambahkan referensi.
  5. Dalam Menambahkan referensi kotak dialog, klik Proyek tab, dan kemudian menambahkan referensi ke proyek DataSetHelper untuk Windows formulir aplikasi.
  6. Dalam bentuk desainer, tarik dua Tombol kontrol dan DataGrid kontrol dari toolbox untuk bentuk. Nama tombol btnCreate1 dan btnCreate2. Menjaga nama standar untuk DataGrid kontrol (DataGrid1).
  7. Dalam bentuk kode, tambahkan berikut Impor Pernyataan atas jendela kode:
    using System.Data					
  8. Tambahkan berikut Deklarasi variabel bentuk definisi:
    	DataSet ds;	DataSetHelper dsHelper;					
  9. Tambahkan kode berikut untuk Form.load acara:
            ds = new DataSet();	dsHelper = new DataSetHelper(ds);					
  10. Tambahkan kode berikut untuk btnCreate1.Click acara:
    	DataTable dt = dsHelper.CreateTable("CT1", "Name String, ID Int32 Required, Field3 String Name + ID");	dt.Rows.Add(new Object[] {"Jones", 4});	dt.Rows.Add(new Object[] {"Jones", 8});	dt.Rows.Add(new Object[] {"Thompson", 42});	dataGrid1.SetDataBinding(ds,"CT1");						
  11. Tambahkan kode berikut untuk btnCreate2.Click acara:
    	DataTable dt = dsHelper.CreateTable("CT2","Name String, ID Int32 Required, Field3 String Name + ID", "ID");	dt.Rows.Add(new Object[] {"Tom Jones", 45});	dt.Rows.Add(new Object[] {"Will Smith", 58});	dt.Rows.Add(new Object[] {"Davey Jones", 84});	dt.Rows.Add(new Object[] {"Rob Thompson", 42});	dataGrid1.SetDataBinding(ds, "CT2");					
  12. Menjalankan aplikasi, dan kemudian klik masing-masing tombol. Perhatikan bahwa DataGrid diisi dengan meja dan data dari kode.

    CATATAN: Anda hanya dapat mengklik tombol satu kali. Jika Anda klik salah satu tombol ini lebih dari satu kali, Anda menerima pesan galat yang Anda mencoba untuk menambahkan tabel yang sama dua kali.
back to the top

Ide-ide peningkatan

Anda dapat memperpanjang parser sehingga Anda dapat menentukan panjang maksimum untuk kolom string. Sebagai contoh, Anda dapat menggunakan sintaks berikut:
String(50)				
Menambahkan kondisi untuk memeriksa apakah jenis data dimulai dengan "String(". Jika itu, menggunakan nomor untuk mengatur MaxLength properti DataColumn objek.

back to the top

Pemecahan Masalah

  • Ekspresi tidak boleh berisi tanda koma, bahkan jika koma tertanam dalam tanda kutip. Sebagai contoh, ungkapan berikut tidak sah:
    LastName+", "+FirstName					
    Ini adalah pembatasan parsing teknik yang digunakan. Anda dapat menggunakan teknik parsing yang lebih canggih sehingga Anda dapat menanamkan koma dalam tanda kutip. Untuk mengatasi keterbatasan ini, tambahkan ekspresi bermasalah setelah tabel dibuat.

  • Jika Anda mengklik sebuah tombol lebih dari satu kali, tabel yang sama yang ditambahkan dua kali untuk DataSet, yang mengakibatkan pengecualian. Untuk mengatasi masalah ini, Anda dapat menambahkan kode untuk aplikasi tes untuk memeriksa apakah DataTable nama yang sama sudah ada. Atau, Anda dapat membuat DataSetHelper kelas tanpa referensi untuk DataSet dan kemudian mengikat DataGrid.DataSource properti secara langsung untuk DT variabel bukan dengan menggunakan SetDataBinding metode panggilan.
back to the top

Peringatan: Artikel ini telah diterjemahkan secara otomatis

Properti

ID Artikel: 325938 - Tinjauan Terakhir: 10/03/2011 07:33:00 - Revisi: 2.0

Microsoft ADO.NET 1.1, Microsoft Visual C# .NET 2002 Standard Edition, Microsoft Visual C# .NET 2003 Standard Edition

  • kbhowtomaster kbsystemdata kbmt KB325938 KbMtid
Tanggapan
ml>