DBda saqlanadigan protseduralar bilan ishlash foydalanuvchi funksiyalari kabi amalga oshiraladi. Avvalgi mavzuda ko’rib chiqilgan DB

|
DBda saqlanadigan protseduralar bilan ishlash foydalanuvchi funksiyalari kabi amalga oshiraladi. Avvalgi mavzuda ko’rib chiqilgan DB
|
bet | 37/53 | Sana | 30.11.2023 | Hajmi | 1,39 Mb. | | #108476 |
Bog'liq Dasturiy injiniringDBda saqlanadigan protseduralar bilan ishlash foydalanuvchi funksiyalari kabi amalga oshiraladi. Avvalgi mavzuda ko’rib chiqilgan DB ustida ish ko’ramiz. Buning uchun Database Explorer oynasidagi mos DB ga ulanamiz va tuzilmadan Stored Procedures (Saqlangan protseduralar) qismini tanlaymiz. Ushbu qism ustiga sichqonchaning o’ng tugmasini bosamiz va taqdim qilingan menyudan Add New Stored Procedure qismni tanlaymiz:
Shundan so’ng Visual Studio quyidagi protsedura kodini generatsiya qiladi:
CREATE PROCEDURE [dbo].[Procedure]
@param1 int = 0,
@param2 int
AS
SELECT @param1, @param2
RETURN 0
Ushbu kodni quyidagicha o’zgartirib olamiz:
CREATE PROCEDURE [dbo].[GetPhonesByCompany]
@name nvarchar(50)
AS
SELECT * FROM Phones
WHERE CompanyId=(SELECT Id FROM Companies WHERE Name=@name)
GO
Ushbu protsedura @name parametr ga teng bo’lgan telefon kompaniyalari nomiga teng bo’lgan satrlarni topib bo’ladi.
Shundan so’ng, saqlanadigan protsedurani xotiraga saqlash uchun Update tugmasini bosamiz:
Shundan so’ng hosil qilingan oynadan Update Database tugmasini bosish lozim:
Shundan so’ng, Stored Procedures qismda yangi protsedura hosil qilinadi. Ushbu protsedurani ishlatishdan avval uning to’g‘ri ishlashini tekshiramiz. Buning uchun protsedura nomi ustiga sichqonchaning o’ng tugmasini bosib, taklif qilingan menyudan Execute qismni tanlaymiz:
Shundan so’ng kiruvchi parametri mavjud bo’lgan oyna taqdim etiladi. Ushbu oynadagi Value maydoniga biror qiymatni kiritamiz va OK tugmasini bosamiz:
Shundan so’ng Visual Studio avtomatik tarzda SQL tilida mos skriptni generatsiya qiladi va protsedurani kiritilgan parametr orqali ishga tushiradi:
Xuddi yuqorida keltirilgan tartibda GetPhonesPrice saqlanuvchi protsedurasini yaratamiz:
CREATE PROCEDURE [dbo].[GetPhonesPrice]
@bprice int, @eprice int
AS
SELECT * FROM Phones
WHERE Price BETWEEN @bprice and @eprice
Endi C# tili ushbu protsedura bilan ishlashni ko’rib chiqamiz:
static void Main(string[] args)
{
using (PhoneContext db = new PhoneContext())
{
// Kompaniya nomiga mos telefonlar markalarini aniqlash
System.Data.SqlClient.SqlParameter param = new System.Data.SqlClient.SqlParameter("@name", "Samsung");
var phones = db.Database.SqlQuery("GetPhonesByCompany @name", param);
foreach (var p in phones)
Console.WriteLine("{0} - {1}", p.Name, p.Price);
// Narxi 20000 va 35000 rubl orasida bo’lgan telefon markalarini aniqlash
System.Data.SqlClient.SqlParameter param1 = new System.Data.SqlClient.SqlParameter("@bprice", "20000");
System.Data.SqlClient.SqlParameter param2 = new System.Data.SqlClient.SqlParameter("@eprice", "50000");
var phones1 = db.Database.SqlQuery("GetPhonesPrice @bprice, @eprice", param1, param2);
foreach (var p in phones1)
Console.WriteLine("{0} - {1}", p.Name, p.Price);
}
Console.ReadKey();
}
|
|
Bosh sahifa
Aloqalar
Bosh sahifa
DBda saqlanadigan protseduralar bilan ishlash foydalanuvchi funksiyalari kabi amalga oshiraladi. Avvalgi mavzuda ko’rib chiqilgan DB
|