SqlCommand va buyruqlarni bajarish
Ma’lumotlar bazasiga ulanishni o'rnatgandan so'ng, biz ma'lumotlar bazasiga har qanday buyruqlarni bajarishimiz mumkin, masalan, ma'lumotlar bazasiga yozuv qo'shish, o'chirish, o'zgartirish yoki yozuvlarni chiqarib olish. Buyruqlar System.Data.IDbCommand interfeysi obyekti bilan ifodalanadi. MS SQL provayderi uning bajarilishini SqlCommand sinifi ko'rinishida ta'minlaydi. Bu sinf bajariladigan sql-ifodasini qamrab oladi.
Buyruqni bajarish uchun bizga sql-ifodasi va ulanish ob'ekti kerak:
using System;
using System.Data.SqlClient;
class Program
{
static void Main()
{
string ulaninsh_satri = @"Data Source=DESKTOP-QI7HNPK; Initial Catalog=AvtoSalon;Integrated Security=True";
using (SqlConnection connec = new SqlConnection(ulaninsh_satri))
{
connec.Open();
SqlCommand command = new SqlCommand();
command.CommandText = "SELECT * FROM MashinaDB";
command.Connection = connec;
}
Console.ReadLine();
}
}
CommandText xususiyati bilan bajariladigan SQL-ifoda o’rnatiladi. Yuqorida keltirilgan misolda MashinaDB jadvaldagi barcha maydonlar bo’yicha mashinalar to’g’risada ma’lumotni olish so'rovidir. Va Connection xususiyatidan foydalanib, siz SqlConnection ulanish ob'ektini o'rnatishingiz mumkin.
Shu bilan bir qatorda, sinf konstruktorining yana bir versiyalaridan biri ishlatilishi mumkin:
using System;
using System.Data.SqlClient;
class Program
{
static void Main()
{
string ulaninsh_satri = @"Data Source=DESKTOP-QI7HNPK; Initial Catalog=AvtoSalon;Integrated Security=True";
string sqltext = "SELECT * FROM MashinaDB";
using (SqlConnection connec = new SqlConnection(ulaninsh_satri))
{
connec.Open();
SqlCommand command = new SqlCommand(sqltext, connec);
}
Console.ReadLine();
}
}
Buyruqni bajarish uchun siz SqlCommand usullaridan birini ishlatishingiz kerak:
ExecuteNonQuery: faqat sql ifodasini bajaradi va o'zgartirilgan yozuvlar sonini qaytaradi. INSERT, UPDATE, DELETE sql ifodalari uchun javob beradi.
ExecuteReader: sql ifodasini bajaradi va jadvaldan satrlarni qaytaradi. SQL SELECT buyruqi uchun javob beradi.
ExecuteScalar: sql ifodasini bajaradi va raqam kabi bitta skalyar qiymatni qaytaradi. SQL, Min, Max, Sum, Count kabi o'rnatilgan SQL funktsiyalaridan biri bilan bog'langan SELECT bayonotiga mos keladi.
using System;
using System.Data.SqlClient;
class Program
{
static void Main()
{
string ulaninsh_satri = @"Data Source=DESKTOP-QI7HNPK; Initial Catalog=AvtoSalon;Integrated Security=True";
string sqltext = "INSERT INTO MashinaDB(Name, Model, Rangi, Yili, Divigatel_kuchi) VALUES ('Spark', 'GM', 'Oq', 2020, 1.4)";
using (SqlConnection connec = new SqlConnection(ulaninsh_satri))
{
connec.Open();
SqlCommand command = new SqlCommand(sqltext, connec);
int n = command.ExecuteNonQuery();
Console.WriteLine("Qo'shilgan yozuv soni: {0}", n);
}
Console.ReadLine();
}
}
Yangi yozuvni kiritish uchun quyidagi sintaksisga ega bo'lgan INSERT sql-ifodasi ishlatiladi:
INSERT INTO jadval_nomi (maydon1, maydon2, maydonN)
VALUES ( qiymat1, qiymat2, qiymatN)
Bu erda ExecuteNonOuery () metodi buyruq bajarilgan qatorlar sonini qaytaradi (bu holda jadvalga ob'ektlar qo'shiladi). Metodning natijasini qaytarishning hojati bo'lmasada, bu natija biror amal, xususan yozuv qo’shish muvaffaqiyatli o'tganligini tekshirish sifatida ishlatilishi mumkin.Ma'lumotlar qo'shilganligiga ishonch hosil qilish uchun biz SQL Server Management Studio -dagi MashinaDB jadvaliga o'tamiz va qo'shilgan qatorni ko'rsatish uchun birinchi 200 ta qatorni o’zgartirish opsiyasidan foydalanishimiz mumkin:
5-rasm
Do'stlaringiz bilan baham: |