Bog'liq 16-amaliy dars. DataSet bilan jadval, ustun va satrlarga murojat qilish
Maqsad: Talabalar DataSet yordamida ma’lumotlarni o‘qish, DataSet bilan jadval, ustun va satrlarga murojaat haqida tasavvurga ega bo’lish.
MAVZU: DataSet bilan jadval, ustun va satrlarga murojaat.
REJA:
DataSet va DataTable
DataSetda jadvallar o'rtasidagi munosabatlar.
DataSet obyekti DataTable turi bilan ifodalangan jadvallarni o'z ichiga oladi. Jadval, o'z navbatida, ustun va satrlardan iborat. Har bir ustun DataColumn ob'ektini, qator esa DataRow ob'ektini ifodalaydi. Qatorning barcha ma'lumotlari ItemArray xususiyatida saqlanadi, u ob'ektlar majmuasini - satrdagi alohida kataklarning qiymatlarini ifodalaydi.
Masalan, berilgan jadvalni olaylik va ularning tarkibini ko'rsataylik:
static void Main(string[] args)
{
string sql = "SELECT * FROM talabalar";
string connectionString = @"Data Source=.\SQLEXPRESS;Initial Catalog=talabadb;Integrated Security=True";
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
SqlDataAdapter adapter = new SqlDataAdapter(sql, connection);
DataSet ds = new DataSet();
adapter.Fill(ds);
// jadval ustida takrorlanish
foreach (DataTable dt in ds.Tables)
{
Console.WriteLine(dt.TableName); // jadval nomi
// barcha ustunlarni takrorlash
foreach (DataColumn column in dt.Columns)
Console.Write("\t{0}", column.ColumnName);
Console.WriteLine();
davomi:
// barcha ustunlarni takrorlash
foreach (DataColumn column in dt.Columns)
Console.Write("\t{0}", column.ColumnName);
Console.WriteLine();
// jadvalning satrlari bo'yicha takrorlanish
foreach (DataRow row in dt.Rows)
{
// qatorning barcha katakchalarini olish
var cells = row.ItemArray;
foreach (object cell in cells)
Console.Write("\t{0}", cell);
Console.WriteLine();
}
}
}
Console.Read();
}
Natija esa quyidagicha bo’ladi:
Keling, DataSet va DataTable ob'ektlari bilan qandaydir ma'lumotlar bazasi bo'lmasdan ham ishlashimiz mumkinligini ko'rib chiqaylik. Masalan, DataSetda qo'lda bir nechta jadvallar tuzamiz va ularning tuzilishini aniqlaymiz:
static void Main(string[] args)
{
DataSet kutubxona = new DataSet("Kitobxon");
DataTable kitobjadval = new DataTable("Kitoblar");
// ma'lumotlar bazasiga jadval qo'shish
kutubxona.Tables.Add(kitobjadval);
// kitoblar jadvali uchun ustunlar yaratish
DataColumn kitobid = new DataColumn("Id", Type.GetType("System.Int32"));
kitobid.Unique = true; // ustun o'ziga xos qiymatga ega bo'ladi
kitobid.AllowDBNull = false; // null qabul qila olmaydi
kitobid.AutoIncrement = true; // avtomatik ravishda ko'payadi
kitobid.AutoIncrementSeed = 1; // boshlang'ich qiymati
kitobid.AutoIncrementStep = 1; // yangi qator qo'shganda ortadi
DataColumn kitobnomi = new DataColumn("Nomi", Type.GetType("System.String"));
DataColumn kitobnarxi = new DataColumn("Narxi", Type.GetType("System.Decimal"));
kitobnarxi.DefaultValue = 100; // standart qiymat
DataColumn chegirma = new DataColumn("Chegirma", Type.GetType("System.Decimal"));
chegirma.Expression = "Narxi * 0.2";
kitobjadval.Columns.Add(kitobid);
kitobjadval.Columns.Add(kitobnomi);
kitobjadval.Columns.Add(kitobnarxi);
kitobjadval.Columns.Add(chegirma);
// kitoblar jadvalining asosiy kalitini aniqlash
kitobjadval.PrimaryKey = new DataColumn[] { kitobjadval.Columns["Id"] };
DataRow row = kitobjadval.NewRow();
row.ItemArray = new object[] { null, "O`tgan kunlar\t", 20000 };
kitobjadval.Rows.Add(row); // birinchi qatorni qo'shish
kitobjadval.Rows.Add(new object[] { null, "Mehrobdan chayon", 22000 }); // ikkinchi qatorni qo'shish
kitobjadval.Rows.Add(new object[] { null, "Sarob\t\t", 25000 }); // uchinchi qatorni qo'shish
Console.Write("\tId \tNomi \t\t\tNarxi \tChegirma");
Console.WriteLine();
foreach (DataRow r in kitobjadval.Rows)
{
foreach (var cell in r.ItemArray)
Console.Write("\t{0}", cell);
Console.WriteLine();
}