-
Penjelasan rinci tentang C# DataSet dan DataTable
2009-Kamis-21
1. Buat objek DataSet:
DataSet ds = DataSet baru("NamaSetData");
2. Lihat struktur yang dibuat dengan memanggil SqlDataAdapter.Fill
da.Isi(ds,"Pesanan");
DataTable tbl = ds.Table[nol];
foreach(Kolom Datakolom di tbl.Kolom)
Console.WriteLine(col.ColumnName);
3. Lihat data yang dikembalikan oleh SqlDataAdapter ①, objek DataRow
DataTable tbl = ds.Table[nol];
Baris DataRow = tbl.Row[nol];
Console.WriteLine(ros["OrderID"]);
②. Periksa data yang disimpan di DataRow
DataTable tbl = baris.Tabel;
foreach(Kolom Datakolom di tbl.Kolom)
Console.WriteLine(baris[col]);
③. Periksa objek DataRow di DatTable
foreach(baris DataRow di tbl.Rows)
TampilanBaris(baris);
4. Verifikasi data di DataSet ① Verifikasi properti DataColumn: ReadOnly, AllowDBNull, MaxLength, Unique
②. Membatasi agregasi objek DataTable: UiqueConstraints, Primarykey, ForeignkeyConstraints
Biasanya tidak perlu repot membuat ForeignkeyConstraints, karena ForeignkeyConstraints dibuat ketika ada hubungan antara dua objek DataTable dalam DataSet.
③. Gunakan metode SqlDataAdapter.Fill untuk mengambil informasi metode
5. Kompilasi kode untuk membuat objek DataTable
①. Buat objek DataTable: DataTable tbl = new DataTable("NamaTabel");
②. Tambahkan DataTable ke konvergensi Tabel objek DataSet
Kumpulan Data ds = Kumpulan Data baru();
DataTable tbl = new DataTable("Pelanggan");
ds.Tabel.Tambahkan(tbl);
Kumpulan Data ds = Kumpulan Data baru();
DataTable tbl = ds.Tables.Add("Pelanggan");
Objek DataTable hanya bisa ada di paling banyak satu objek DataSet. Jika Anda ingin menambahkan DataTable ke beberapa Kumpulan Data, Anda harus menggunakan langkah Salin atau langkah Klon. Langkah Copy membuat DataTable baru yang memiliki struktur yang sama dengan DataTable asli dan berisi baris serupa; langkah Clone membuat DataTable baru yang memiliki struktur yang sama dengan DataTable asli tetapi tidak berisi baris apa pun.
③. Tambahkan kolom ke DataTable
DataTable tbl = ds.Tables.Add("Pesanan");
DataColumn col =tbl.Columns.Add("OrderID",typeof(int));
col.AllowDBNull = salah;
col.MaxLength = lima;
kol.Unik = benar;
tbl.PrimaryKey = Kolom Data baru[]{tbl.Kolom["ID Pelanggan"]};
Ketika kunci utama harus disetel, AllowDBNull secara otomatis disetel ke False;
④. Buang kolom kenaikan otomatis
Kumpulan Data ds = Kumpulan Data baru();
DataTable tbl = ds.Tables.Add("Pesanan");
DataColumn col = tbl.Columns.Add("OrderID",typeof(int));
col.Peningkatan Otomatis = true;
col.AutoIncrementSeed = -1;
col.AutoIncrementStep = -1;
col.ReadOnly = benar;
⑤. Tambahkan kolom berdasarkan ekspresi
tbl.Columns.Add("ItemTotal",typeof(Desimal),"Jumlah*Harga Satuan");
6. Ubah konten DataTable ①, tambahkan DataRow baru
Baris DataRow = ds.Tables["Pelanggan"].NewRow();
baris["ID Pelanggan"] = "ALFKI";
ds.Tables["Pelanggan"].Rows.Add(row);
objek[] aValues ={"ALFKI","Alfreds","Anders","030-22222"};
da.Tables["Pelanggan"].LoadDataRow(aValues,false);
②.Koreksi sedang berlangsung
Memodifikasi konten suatu baris tidak secara otomatis mengubah konten terkait dalam database. Modifikasi pada baris dianggap sebagai perubahan tertunda yang nantinya akan dikirimkan ke database menggunakan objek SqlDataAdapter.
Baris DataRowPelanggan;
rowCustomer = ds.Tables["Custoemrs"].Rows.Find("ANTON");
if(barisPelanggan == null)
//Tidak mencari pelanggan
kalau tidak
{
rowCustomer["NamaPerusahaan"] = "NamaPerusahaan Baru";
rowCustomer["ContactName"] = "NewContactName";
}
//Direkomendasikan untuk menggunakan formulir ini
Baris DataRowPelanggan;
rowCustomer = ds.Tables["Custoemrs"].Rows.Find("ANTON");
if(barisPelanggan == null)
//Tidak mencari pelanggan
kalau tidak
{
barisPelanggan.BeginEdit();
rowCustomer["NamaPerusahaan"] = "NamaPerusahaan Baru";
rowCustomer["ContactName"] = "NewContactName";
barisPelanggan.EndEdit();
}
//null artinya tidak mengubah data pada kolom ini
obejct[] aPelanggan ={null, "NamaPerusahaan Baru", "NamaKontak Baru", null}
Baris DataRowPelanggan;
rowCustomer = ds.Tables["Pelanggan"].Rows.Find("ALFKI");
rowCustomer.ItemArray = aCustomer;
③. Tangani nilai null DataRow
//Periksa apakah kosong
Baris DataRowPelanggan;
rowCustomer = ds.Tables["Pelanggan"].Rows.Find("ALFKI");
if(rowCustomer.IsNull("Telepon"))
Console.WriteLine("Nolnya");
kalau tidak
Console.WriteLine("Ini bukan Null");
//Berikan nilai nol
rowCustomer["Telepon"] = DBNull.Value;
④. Hilangkan DataRow
Baris DataRowPelanggan;
rowCustomer = ds.Tables["Pelanggan"].Rows.Find("ALFKI");
barisPelanggan.Hapus();
⑤. Hilangkan Baris Data
DataRow rowCustomer = ds.Tables["Pelanggan"].Rows.Find("ALFKI");
rowCustomer.ItemArray = aCustomer;
da.Tabel["Pelanggan"].Hapus(barisPelanggan);
mungkin
ds.Tables["Pelanggan"].RemoveAt(intIndex);
⑥. Gunakan properti DataRow.RowState: Tidak Berubah, Terpisah, Ditambahkan, Dimodifikasi, Dihapus
kekosongan pribadi DemonstrateRowState()
{ // Jalankan fungsi untuk membuat DataTable dengan satu kolom. DataTable myTable = MakeTable();
// Buat DataRow baru. myRow = myTable.NewRow(); // Baris terpisah. Console.WriteLine("Baris Baru " + myRow.RowState);
myTable.Rows.Add(myRow); // Baris baru.Consol.WriteLine("AddRow " + myRow.RowState);
myTable.AcceptChanges(); // Baris tidak berubah. Console.WriteLine("AcceptChanges " + myRow.RowState);
myRow["FirstName"] = "Scott"; // Baris yang diubah. Console.WriteLine("Dimodifikasi " + myRow.RowState);
myRow.Delete(); // Baris yang dihapus. Console.WriteLine("Dihapus " + myRow.RowState }
⑦. Periksa perubahan yang tertunda di DataRow
Baris DataRowPelanggan;
rowCustomer = ds.Tables["Pelanggan"].Rows.Find("ALFKI");
rowCustomer["NamaPerusahaan"] = "NamaPerusahaan Baru";
string strNamaPerusahaanBaru, strNamaPerusahaanLama;
Console.WriteLine(rowCustomer["NamaPerusahaan", DataRowVersion.Current]);
Console.WriteLine(rowCustomer["CompanyName", DataRowVersion.Original]);
1. Kumpulan Data
①、Atribut
CaseSensitive: Digunakan untuk mengontrol apakah perbandingan string di DataTable peka huruf besar-kecil.
ATAS
Sumber artikel ini:
Jaringan saya yang tidak normal
Pengecualian Java
Pengecualian Dotnet
Peramal