16.17.2. Ma'lumotlarni tahrirlash Biz allaqachon satrlarni tahrirlash mavzusiga to'xtalib o'tdik va ushbu bobda biz ushbu mavzuni chuqurroq ko'rib chiqamiz. Shunday qilib, formaga quyidagi kodni yozish zarur:
private void editButton_Click(object sender, EventArgs e)
{
// yozuvlar sonini tekshiring
if (table.Rows.Count == 0)
return;
DataRow row = table.Rows[0]; // biz 0-qatorni olamiz
row[1] = "Shakar"; // birinchi maydonning qiymatini o'zgartiring
}
Birinchidan, jadvalda yozuvlar mavjudligini tekshiramiz. Agar Rows to'plamidagi elementlar soni nolga teng bo'lsa, unda tahrirlash uchun hech narsa yo'q. Agar yozuvlar mavjud bo'lsa, unda biz nol qatorni olamiz va birinchi maydonning qiymatini o'zgartiramiz.
Ma'lumotlar jadvalidagi ma'lumotlar o'zgarganda, ma'lumotlar holatini nazorat qilish imkonini beradigan quyidagi hodisalar hosil bo'ladi:
ColumnChanged - hodisa har safar ustundagi qiymat o'zgarganda boshlanadi;
ColumnChanging - ustundagi qiymat hozirda o'zgarmoqda va o'zgartirish hali ham bekor qilinishi mumkin;
RowChanged - satrdagi qiymat yoki satr holati o'zgargan;
RowChanging - satrdagi qiymat yoki satr holati hozirda o'zgarmoqda.
16.17.3. Ma'lumotlarni qidirish Biz 16.13.1 bo'limida ma'lumotlarga kirish uchun Rows xususiyatidan foydalanishingiz mumkinligini allaqachon bilib oldik. Uning yordamida biz to'plamdagi istalgan satrga to'g'ridan-to'g'ri murojaat qilishimiz mumkin. Ammo qidirishning yana bir qiziqarli usuli bor - Find(). Ushbu usul topiladigan qatorning asosiy kalitining qiymatini o'tkazish kerak. Misol uchun, quyidagi kod bizga kaliti 20 bo'lgan mahsulotni qaytaradi:
DataRow foundedRow = table.Rows.Find(20);
Ushbu kodni bajarish uchun satrda asosiy kalitlar to'plami bo'lishi shart. Agar kalit o'rnatilmagan bo'lsa, Find() usuliga qo'ng'iroq qilish istisnoga olib keladi.
16.17.4. Satrlarni oʻchirish Jadvaldan satrni olib tashlash uchun O'chirish() yoki RemoveAt() yig'ish usulidan foydalanib, kerakli yozuvni Rows to'plamidan olib tashlashingiz mumkin. Misol uchun, quyidagi misolda Remove() usuli yordamida to'plamdan 0-satr olib tashlanadi:
private void deleteButton_Click(object sender, EventArgs e)
{
if (table.Rows.Count == 0)
return;
table.Rows.Remove(table.Rows[0]);
}
Qatorni o'chirishning ikkinchi usuli qatorni Delete() usulidan foydalanishdir. Masalan, quyidagi kod null qatorni olib tashlaydi:
table.Rows[0].Delete();
Qator o'chirilganda, qatorga egalik qiluvchi jadval ob'ekti uchun RowDeleting hodisasi ko'tariladi. Qator o'chirilgandan so'ng, RowDeleted hodisasi ko'tariladi. Ushbu hodisalar yordamida siz foydalanuvchi ma'lumotlarni o'chirishga harakat qilganda nazorat qilishingiz mumkin. Shuni unutmangki, uni ma'lumotlar bazasidan o'chirish uchun siz AcceptChanges() usulini ham chaqirishingiz kerak.