• Add New Stored Procedure
  • @name
  • Execute
  • GetPhonesPrice
  • DBda saqlanadigan protseduralar bilan ishlash foydalanuvchi funksiyalari kabi amalga oshiraladi. Avvalgi mavzuda ko’rib chiqilgan DB




    Download 1,39 Mb.
    bet37/53
    Sana30.11.2023
    Hajmi1,39 Mb.
    #108476
    1   ...   33   34   35   36   37   38   39   40   ...   53
    Bog'liq
    Dasturiy injiniring

    DBda 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();
    }



    Download 1,39 Mb.
    1   ...   33   34   35   36   37   38   39   40   ...   53




    Download 1,39 Mb.

    Bosh sahifa
    Aloqalar

        Bosh sahifa



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

    Download 1,39 Mb.