> Yo'q objCommandBuilder Yangi SqlCommandBuilder (dataAdapter) dataAdapter.Update (myDataSet, "Recipes")
DataAdapter nima o'zgartirildi va keyin INSERT, UPDATE yoki Delete buyrug'ini bajaradi, ammo barcha ma'lumotlar bazasi operatsiyalarida bo'lgani kabi, ma'lumotlar bazasiga oid yangilanishlar ma'lumotlar bazasi boshqa foydalanuvchilar tomonidan yangilanib turganda muammoga duch kelishi mumkin, shuning uchun odatda kodni ma'lumotlar bazasini o'zgartirganda muammolarni oldindan aniqlash va hal qilish.
Ba'zan faqat DataSet kerakli narsani amalga oshiradi.
Agar siz kollektsiya kerak bo'lsa va siz ma'lumotlarni ketma-ket o'tkazmoqchi bo'lsangiz, DataSet - foydalanish uchun vosita. WriteXML usulini chaqirib DataSet-ni XML-ga tez-tez serialize qilishingiz mumkin.
DataSet ma'lumotlar bazasiga murojaat qiladigan dasturlarda foydalanadigan eng maqbul ob'ekt . ADO.NET tomonidan ishlatiladigan asosiy ob'ekt va u uzilish rejimida foydalanish uchun mo'ljallangan. DataSet va DataTable. Ma'lumotlar bazasidan SqlDataAdapter orqali DataSet-da ma'lumotlarni olgandan so'ng, biz ulanishdan qat'i nazar, ushbu ma'lumotlar bilan mahalliy ravishda ishlashimiz
mumkin. Bundan tashqari, agar biz biron bir ma'lumotlar bazasidan foydalanishga hojat yo'q bo'lsa,
lekin ayni paytda jadvallar to'plami shaklida ma'lumotlar bilan ishlash uchun qulay funktsiyaga ega
bo'lishni istasak, unda biz DataSet klassidan ham foydalanishimiz mumkin.
DataSet ob'ekti DataTable turi bilan ta'minlangan jadvallarni o'z ichiga oladi. O'z navbatida,
jadval ustunlar va satrlardan iborat. Har bir ustun DataColumn ob'ekti, satr esa DataRow ob'ekti. Qator
ma'lumotlari ItemArray xususiyatida saqlanadi, bu ob'ektlarning qatorini - satrdagi alohida
hujayralarning qiymatlarini anglatadi. Masalan, biz barcha jadvallarni olamiz va ularning tarkibini
ko'rsatamiz:
static void Main(string[] args) {
string sql = "SELECT * FROM Users";
string connectionString = @"Data Source=.\SQLEXPRESS;Initial Catalog=usersdb;Integrated
Security=True";
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
SqlDataAdapter adapter = new SqlDataAdapter(sql, connection);
DataSet ds = new DataSet();
adapter.Fill(ds);
// перебор всех таблиц
foreach (DataTable dt in ds.Tables) {
Console.WriteLine(dt.TableName); // Jadval nomlanishi
// перебор всех столбцов
foreach(DataColumn column in dt.Columns)
Console.Write("\t{0}", column.ColumnName);
Console.WriteLine();
// перебор всех строк таблицы
foreach (DataRow row in dt.Rows)
{
// получаем все ячейки строки
var cells = row.ItemArray;
foreach (object cell in cells)
Console.Write("\t{0}", cell);
Console.WriteLine();
}
}
}
}
Endi DataSet va DataTable ob'ektlari bilan qandaydir ma'lumotlar bazasini ishlatmasdan
qanday ishlashimiz mumkinligini ko'rib chiqamiz. Masalan, biz DataSet-da qo'lda bir nechta jadval
yaratamiz va ularning tarkibini aniqlaymiz:
static void Main(string[] args) {
DataSet bookStore = new DataSet("BookStore");
DataTable booksTable = new DataTable("Books");
// dataset ga jadval qo'shing
bookStore.Tables.Add(booksTable);
// Books jadvali uchun ustunlar yarating
DataColumn idColumn = new DataColumn("Id", Type.GetType("System.Int32"));
idColumn.Unique = true; // ustun noyob qiymatga ega bo'ladi
idColumn.AllowDBNull = false; // nullni qabul qila olmaydi
idColumn.AutoIncrement = true; // avtomatik kattalashtirish
idColumn.AutoIncrementSeed = 1; // boshlang'ich qiymati
Do'stlaringiz bilan baham: |