Reja: SystemData fazosidan foydalanish
Download 83.5 Kb.
|
SystemData fazosidan foydalanish
SystemData fazosidan foydalanish Reja:
1.SystemData fazosidan foydalanish . 2.LINQ texnologiyalarini ilovada qo’llash. 3.WPF texnologoyasi imkoniyatlari. 4.Parallel linq metodlari. Barcha mavjud aniqlangan sinflar va tuzilmalar o’z-o’zidan mavjud emas.balki ular maxsus konteynerlarda nomlar fazosida joylashgan bo’ladi.Biz yaratadigan oddiy standart dastur sinfi ham allaqachon nomlar fazosida joylashgan bo’lib odatda loyiha nomi bilan bir xil bo’ladi. Namespace HelloApp Class Program Static void Main (string [] args) Nomlar fazosi namespace nomli so’z va undan keyin keluvchisi yordamida aniqlanadi.yuqoridagi misolda to’liq nomi HelloApp Program bo’ladi. Quyidagi misolda program sinfi o’zi joylashgan HelloApp nomlar fazosidagi aniqlangan barcha sinflarni ko’ra oladi. Misol: Namespace helloApp Class Program Static void Main (string [] args] Account account=newAccount(40; Class Account { Public int id {get]private{set})//hisob raqami Public Account (int_id) Agarda boshqa nomlar fazosida joylashgan sinflarga murojaat qilish kerak bo’lsa,u holda Using kalit so’rovidan foydalanib kerakli nomlar fazosini ulash (ochish) kerak: Using System: Namespace HellloApp Class program Sttic void Main (string [] args) Console.WriteLine (“hello”); Yuqoridagi Sustem nomlar fazosi ochilgan bu nomlar fazosida Console sinfi aniqlangan.Agar System nomlar fazosi ochilmasa Console sinfiga quyidagicha to’liq yo’lni ko’rsatib murojaat qilish kerak bo’ladi: Nomlar fazosi haqida Static void Main (string [] args) System.Console.WriteLine(“Hello”); Nomlar fazosi quyidagi xossalarga ega : Katta hajmdagi kodlarni tartiblar ishlatishga yordam beradi.Nomlar fazosi “, “ lar bilan ajratiladi. C* dasturlash tilida ADO.NET dan foydalanish uchun System.Data nomlar fazosiga ssilka (yo’nalish) o’rnatish kerak,chunki bu yerda ADO.NET ning barcha sinflari joylashgan. U quyidagicha o’rnatiladi: Using Sustem.Data. Bu nomlar fazosidan foydalanmasdan ADO.NET bilan ishlovchi dastur tuzish qiyin masala. Ushbu nom fazosi barcha ADO.NET ma’lumotlar provayderlar tomonidan birgalikda foydalaniladigan turlarni o’z ichiga oladi. System.Data nomlar fazosining asosiy tashkil etuvchilar quyida keltirilgan. Constrain-DataColumn obyektidagi cheklovlarni aniqlaydi. Data Column-DataTable ichidagi bitta ustunni aks ettiradi. DataRelation-DataTable ning ikkita obyekti o’rtasidagi ota-ona va bola munosabatlarni ifodalaydi. Data Raw-Data Table ichidagi bitta qatorni aks ettiradi. DataSet-Xotirada saqlanadigan har qanday o’zaro bog’liq bo’lgan DataTable obyektlaridan tashkil topgan ma’lumotlarni aks ettiradi. ADO.NET da ma’lumotlarni ma’lumotlar bazasidan o’qib olish uchun 2 ta umumiy obyekt mavjud bo’lib,bular: 1.DataReader. 2.Data.Set. DataReader-dasturchilarga ma’lumotlarni ma’lumotlar bazasidan qulay ko’rinishda o’qib olishga imkon beradi.Datareader yordamida ma’lumotlarni faqatgina bir yo’nalishda o’qib olishmumkin.Ma’lumotlar bazasida jadvalning ko’rinishi quyidagicha tasvirlash mumkin:
ADO.NET obyektining boshqa obyektlarga o’xshab,har bir ma’lumotlar provayderi o’zining mos DataReader sinfiga ega.Masalan OleDbDataReader OleDb data provayder uchun Datareader sinfi hisoblanadi.Shunga o'xshash SQL DataReader va ODBS DataReader sinflari mos ravishda SQL va ODBS provayderlariga to’g’ri keladi.I DataReader interfeysi asos sinf bo’lib quyidagi DataReader sinflariga to’g’ri keladi. ADO.NET dagi DataReader obyekti ma’lumotlar manbalaridan olingan ma’lumotlarni yangilamaydigan,so’rov natijalarini oqimiga asoslanan,faqat oldinga yo’naltirilgan,faqat o’qish uchun mo’ljallangan obyekt. DataReader ni to’g’ridan to’ri koddan yaratish mumkin emas,uni faqat Command obyektining ExcuteReader usulini chaqirish orqali yaratilishi mumkin. ADO.NET Sq(DataReader) Ushbu sinf SQL Server ma’lumotlar bazasidan ma’lumotlarni o’qib olish uchun ishlatiladi.SQL Server ma’lumotlarning bazasidan faqat oldinga yo’naltirilganqatorlar ma’lumotlarni o’qiydi. SQl DataReader xususiyatlari: 1.Connection-SQL DataReader bilan bog’langan SQL Connection ni olish uchun foydalaniladi. 2.Field-Count-U joriy qatordagi ustunlar sonini olish uchun ishlatiladi. 3.HowRows-SQL DataReader da bir yoki bir nechta qator mavjudligini ko’rsatadigan qiymatni olish uchun foydalaniladi. 4.IsClosed-Belgilangan SQLDataReader nusxasi yopilganliginiko’rsatadigan mantiqiy qiymatni olish uchun foydalaniladi. 5.Item[String]-Belgilangan ustunlarning qiymatida asl formatida ustun nomini olish uchun ishlatiladi. RecordsAlfected-Transoct-SQL bajarilishi bilan o’zgartirilgan,kiritilgan yoki o’chirilgan qatorlar sonini olish uchun foydalaniladi. VisiblefieldCount-SQLDataReader da yashirilmagan maydonlar sonini olish uchun foydalaniladi. SQL DataReader metodlari: 1.Close()-U SQL DataReader obyektini yopish uchun ishlatiladi. 2.GetBoolean(Int32)-Bu mantiqiy sifatida belgilangan ustun qiymatini olish uchun ishlatiladi. 3.GetByte (Int 32)-Belgilangan ustun qiymatini bayt sifatida olish uchun ishlatiladi. 4.GetChar(Int 32)-Belgilangan ustun qiymatini bitta belgi sifatida olish uchun ishlatiladi. 5.GetDataTime(Int 32)-Belgilangan ustun qiymatini DataTime obyekti sifatida olish uchun ishlatiladi. 6.GetDecimal(Int 32) Belgilangan ustun qiymatini Decimal obyekti sifatida olish uchun ishlatiladi. 7.GetDouble(Int 32)-Belgilangan ustun qiymatini ikki marta aniq suzuvchi nuqta raqmi sifatida olish uchun ishlatiladi. 8.GetFloat(Int 32)-Belgilangan ustunning qiymatini bitta aniqlikdagi suzuvchi nuqta raqami sifatida olish uchun foydalaniladi. 9.GetName[Int 32]-Belgilangan ustun nomini olish uchun ishlatiladi. 10.GetSchema Table () SQL DataReader ustun metadasini tavsiflovchi DataTable olish uchun foydalaniladi. 11.GetValue (Int 32)-Belgilangan ustun qiymatini formatida olish uchun ishlatiladi. Oldingi darsda biz SQL DataReader orqali serverdan ma’lumotlarni satrma-satr o’qib oldik.Bu o’qishdan boshqa SQL DataAdapter va DataSet yordamida ma’lumotlar bazsi bilan doimiy ravishda bog’lanib turmagan holda o’qish imkoniyati mavjud.Bu yerda SQL DataAdapter DataSet ni ma’lumotlar bazasi bilan doimiy ravishda bog’lanib turmagan holda o’qish imkoniyati mavjud.Bu yerda SQLDataAdapter DataSet ni ma’lumotlar bazasidan olingan ma’lumotlaar bazasi bilan to’ldiradi.Quyidagi chizmada SQL Dapter Adapter va DataSet ni ma’lumotlar o’qish uchun bog’lanishi ko’rsatilgan. bilan to’ldiradi. SQL DataAdapter obyekti orqali ma’lumotlarni qabul qilish uchun ma’lumotlar bazasiga ulanish ADO.NET DataSet sinfi ma’lumotlar bazasi turidan qat’iy nazar ma’lumotlarga kirish uchun maxsus mo’ljallangan. DataSet ma’lumotlar satrlar(yozuvlar) va ustunlardan tashkil topgan bir yoki bir nechta DataTable to’plamini o’z ichiga oladi. DataSet quyidagi vazifalarni bajarish uchun mo’ljallangan: 1.Keyingi ishlov berish uchundasturda ma’lumotlarni mahalliy keshlash.Agar faqat so’rov natijalarini o’qishni talab qilinsa,DataReader sinfni ishlatgan yaxshi. 2.Qatlamlar orasidagi yoki XML veb xizmatidan masofaviy ma’lumotlarning o’zaro aloqsini amalga oshirish. DataSet yordamida ma’lumotlarni o’qish. Ma’lumotlar bilan dinamik ravishda ishlash masalan WindowsForms boshqaruviga ulanish yoki bir nechta manbalardan olingan ma’lumotlarni birlashtirish va bog’lash. Ma’lumotlar manbasiga ochiq ulanishni talab qilmaydigan intensive ishlov berishni amalga oshiradi,bu esa boshqa mijozlar foydalanishi uchun ulanishni bo’shatadi. Agar DataSet tomonidan taqdim etiladigan funksionallik talab etilmasa,ma’lumotlarni faqat o’qish uchun bitta o’tish rejimida olish uchun DataReader sinfidan foydalanib,dastur ish faoliyatini yaxshilash mumkin. SQL DataAdapter DataSet ni ma’lumotlar bazasidan olingan ma’lumotlar o’rnatishingiz va SELECT buyrug’ini bajarishingiz kerak.SQLDataAdapter ni yaratishning bir nechta yo’li mavjud. 1.SQLDataAdapter adapter=newSqlDataAdapter(); 2.SqlDataAdapter=newSqlDataAdapter(Command); 3.SqlDataAdapter adapter=new SqlDataAdapter(Sql,Connection); 4.SqlDataAdapter adapter=new SqlDataAdapter (Sql,Connection,string); 1-usul: Konstruktordan hech qanday parametrsiz foydalanishingiz mumkin,keyin esa SELECT buyrug’ini va ulanishni o’rnatishingiz mumkin. 2-usul: SqlCommand obyektini konstruktorga yuborish mumkin. 3-usul: SqlSELECT ifodasini va SqlConnection obyektini konstruktorga o’rnatishingiz mumkin. SqlDataAdapter orqali qanday qilib DataSet ga ma’lumotlarni olishni ko’rib chiqamiz. DataSet bilan ishlash uchun ayniqsa Windows Forms Data grid View kabi tashqi ma’lumotlar manbasidan to’ldirilishi mumkin bo’lgan boshqaruv elementlaridan juda qulaydir. Shuning uchun biz Windows Forms Application turidagiyangi loihani yaratamiz va loyihadagi yagona shaklga Data Grid View elementini qo’shamiz va quyidagi shakl kodini yaratamiz: Using System Data; Using system.Windows.Forms; Using system Dats.Sql Client; Namespace AdoNetWinFormsApp { Public Form1() { IntializeComponent (); String ConnectionString=”Data Sourel; ISQLExpress;Intial Cata log=users db; Integrated Security =True”; String sql “Select*FROM Users”; Using(SQLConnection =new SQLConnection(connection String)); { Connection Open(); LINQ-(Language Integrated Quary-Integrallashgan so’rovlar tili)-bu til oddiy va qulay bo’lib uning yordamida ma’lumotlar manbalariga turli xil so’rovlarni yuborishimiz mumkin.Ma’lumotlar manbalari deganda standart massivlar,xotiradagi ma’lumotlar to’plamlari,XML hujjat va boshqalar bo’lishi mumkin. LINQ- texnologiyasi ma’lmotlarning tipiga bog’liq bo’lmagan holda bir xil yondashuvda ishlaydi. Endi LINQ arxitekturasi bilan tanishib chiqamiz.LINQ yordamida quyidagi ma’lumotlar ma’nbalariga murojaat qilish mumkin: Linq va Objects-Xotiradagi obyektlarga so’rov berish 1)Massivlar,to’plamlar,ro’yhatlar. 2)Agarda klass IEnumerable interfeysini qo’llagan bo’lsa,u bilan ishlashda ham LNQ dan foydalanish mumkin. LINQ to SQL SQL Server ma’lumotlar bazasida joylashgan ma’lumotlarga so’rov berish va ularni o’zgartirishdir. LINQ to XML XML turidagi ma’lumotlarga so’rovlar berish va o’zgartirish uchun ishlatiladi. XML ma’lumotlar fayl yoki stream ko’rinishda bo’lishi mumkin. XML-ma’lumotlarni saqlash va tashish uchun ishlatiladi. System.XML.Linq.XOobject.XElement,XAttribute klasslarini ishlatish mumkin. Linq to Data Set Add.NET Data Set larida ma’lumotlarga so’rov berish va o’zgartirish. Linq to Entities Entity data Model(EDM) turidagi ma’lumotlarga so’rov berish. ADD.NET EDM ni ishlatib ma’lumotlarni LINQ to Objects ishlata oladigan obyektlar ko’rinishida taqdim qilib beradi. LNQ to SQL ga o’xshaydi,farqi nafaqat SQL server balki boshqa ma’lumotlar bazalari bilan ham ishlash imkonini beradi. LINQ so’rovining tuzilishi Linq so’rovlari ma’lumotlar manbayi va iteratsiya o’zgaruvchilaridan tashkil topadi. From kalit so’zidan keyin ma’lumotlar manbayi aniqlanadi. Select sharti yordamida ma’lumotlarni qanday saralash turi aniqlanadi. Bundan tashqari LINQ so’rovida ham bo’lishi mumkin: Filtrlash Saralash Guruhlashtirish Birlashtirish Hisoblash shartlari Linq so’rovining tuzilishi: Har bir LINQ so’rovi 3 ta bosqichdan iborat bo’ladi: Ma’lumotlar manbayini olinishi So’rov kodi yozilishi So’rovning ishlatilishi Quyidagi misolni ko’rib chiqamiz: 1-misol.Sonlardan tashkil topgan massivdan qiymati 7 dan yuqori bo’lgan elementlarni olamiz. Public static void Linq1() { //massivni e’lon qilamiz Int [] sonlar ={2,7,5,6,10,15,8,3} //linq so’rovini yozamiz Var natijaviysonlar=from son in sonlar where>7 orderby son Select son: // so’rovni ishlatilishi; Foreach (int son in natijaviySonlar); Console.WriteLine(son.ToString()); } Quyidagi misolni ko’rib chiqamiz: Bu misolda “B” dan boshlanuvchi elementlarini ajratib olamiz va tartiblaymiz: String [] teams={“Bavariya”,”Borussiya”,”Real Madrid”,”Manchester Siti”,”PSJ”,”Barselona”. Var selectedTeams=newList Foreach (string s in teams) { If (s.ToUpper().StartWith(“B”) selectedTeams.Add(s); } selectedTeams.Sort(); foreach(string s in selectedTeams) Console.WriteLine(S); Endi shu misolni LINQ yordamida yechilishini ko’rib chiqamiz: String [] teams={“bavariya”,”Borrusiya”,”Real Madrid”,”Manchester Siti”,”PSJ”,”Barselona”. Var selected_Teams=from t in teams//teamsning har bir obyektini t sifatida aniqlab olamiz Where t.ToUpper().StartWith(“B”)// ko’rsatilgan shart bo’yicha filtrlash Orderby t //o’sish bo’yicha tartiblash Select t;//obyektni tanlash Foreach (string s in selectedTeams) Console.Writeline(S); Linqda ishlatiladigan metodlar bilan tanishib chiqamiz: Select:tanlangan qiymatlarni nusxsini aniqlaydi. Where:tanlash shartini aniqlaydi. OrderBy:O’sish bo’yicha tartiblaydi. OrderByDescending:Elementlarni kamayish bo’yicha tartiblaydi. ThenBy:Elementlarni o’sish bo’yicha tartiblashda qo’shimcha shartlarni aniqlaydi. ThenByDescending:Elementlarni kamayish bo’yicha tartiblashda qo’shimcha mezonlarni aniqlaydi. Join:Aniqlangan belgilar bo’yicha 2 ta kolleksiyani birlashtiradi. GroupBy:Elementlarni kalit bo’yicha guruhlaydi. ToLookup:Elementlarni kalit bo’yicha guruhlaydi va ularni lug’atga qo’shadi. GroupJoin:Kalit bo’yicha elementlarni guruhlaydi va bir vaqtning o’zida kolleksiyalarni birlashtiradi. Reverse:Elementlarni teskari tartibda joylashtiradi. All:bu kalit so’z yordamida kolleksiyaning barcha elementlari oldidan ko’rsatilgan shartni bajarishi aniqlanadi. Any;Kolleksiyaning hech bo’lmaganda bitta elementi oldindan ko’rsatilgan shartni bajarishi aniqlanadi. Contains:Ko’rsatilgan element kolleksiyada mavjud yoki mavjud emasligini aniqlaydi. Distinct:Kolleksiyadan takrorlanuvchi elementlarni o’chiradi. Except:2 ta kolleksiyadan farq qiluvchi elementlarini aniqlaydi. LINQ yordamida ma’lumotlarni filtrlash masalasini ko’rib chiqamiz.Ma’lumotlar to’plamidan biror shart asosida elementlrini filtrlab olish uchun Where operatorini qo’llaymiz.Masalan:10 dan kata bo’lgan,berilgan to’plamdan,barcha juft elementlarni filtrlashni LINQ yordamida ko’rib chiqamiz: Int [] numbers={1,2,3,4,10,34,55,66,77,88}; IEnumerable numbers where i%2==0 && i>10 selecti; Foreach (int I in evens) Console.Writeline(i); Yuqoridagi LINQ so’rovini quyidagi ko’rinishda ham yozish mumkin: Int [] numbers={1,2,3,4,10,34,55,66,77,88}; IE numerable Where(i=>i%2==0 && i>10); Endi murakkabroq obyektlar ustida filtrlash masalasini ko’rib chiqamiz.Faraz qilaylik bizga foydalanuvchilar to’g’risida yaratilgan sinf berilgan bo’lsin. Class User { Public string name {get;set;} Public int Age {get;set;} Public List Public User() { Languages=newList } } Shu sinf asosida foydalanuvchilar ro’yhatini yaratamiz va shu ro’yhatdan Yoshi 25 yoshdan kata bo’lgan foydalanuvchilarni Console ga chiqarish dasturini tuzamiz: List { New User {Name=”Tom”,Age=23,Languages=newList { “angliyskiy”,”nemiskiy”}}, New User {Name=”Bob”,Age=27,Languages=new List {“angliyskiy”,”fransuskiy”}} New User {Name=”Jon”,Age=29,Languages=new List {“angliyskiy”,”ispanskiy’}} New User {Name=”Elis”,Age=24,Languages=newList {“ispanskiy”,”nemiskiy”}} }; Var selectedusers=from user in users where user.Age>25 select user; Foreach (user user in selectedUsers) Console.WriteLine{$”{User.name}-{User.Age}”); Natija : Bob=27 Jon=29 Yuqoridagi so’rovga teng kuchli bo’lgan quyidagi so’rovni yozamiz: Var selectedUsers=users.Where (u=>u.Age>25); Murakkab filtrlash Murakkab filtrlarni yaratishni qaraylik.Masalan foydalanuvchilar ro’yhatida quyidagi shart bilan mavjud bo’lganlarini aniqlaymiz. Var selectedusers=fromUsers=from user in users from long in user.Languages where user.Age<28 Where lang==”angliyskiy” Select user; Natija: Tom=23 Bob=27 Yuqoridagi so’rovga mos bo’lgan quyidagi kengaytirilgan so’rovni SelectMany yordamida yozamiz. Var selectedUsers=users.SelectMany (u=>u.Languages, (u,l)=>new{User=4,Lang=l}} .Where9u=>u.Lang==”angliyskiy”&&u.User.Age<28) >Select(u=>u.User); Proyeksiya LINQ yordamida ma’lumotlardan kerakli tiplar yordamida proyeksiyalarni (nusxalarni) Select dan foydalanib yaratish mumkin.Faraz qilaylik bizda quyidagi sinf yordamida yaratilgan obyektlar to’plami mavjud bo’lsin. Class User { Public string Name {get;set:} Public intAge {get;set;] } Bizga to’liq obyekt emas,faqatgina name xossasi kerak bo’lsin. List Users.Add(newUser {Name=”Sam”,Age=43}}; Users.Add(new User{Name=”Tom”,Age=33}}; Var names=from u in users select u.Name; Foreach(string n in names) Console.WriteLine(n); Misolni natijasi sifatida Name xossasini qiymati bo’ladi.Bu usul yordamida (proyeksiyalash) yangi obyektlarni ham yaratish mumkin. List Users.Add(new User {Name=”Sam”,Age=43}); Users.Add(new User {Name=”Tom”,Age=33}); Var items=from u in users Select new { FirstName=u.Name, DateOfBirth=DateTime.Now.Year-u.Age}; Foreach (var n in items) Console.WriteLine($.FirstName}-{n.DateOfBirth}”); Yuqorida items nomli yangi object yaratiladi va DateOF.Birth xossalari ham yaratiladi. Yuqoridagi kodni kengaytirilgan usul yordamida quyidagicha ham yozish mumkin. Var names=users.Select(u=>u.Name); Var items =users.Select (u=>new { FirstName=u.Name, DateOfBirthDateTime.Now.Year-u.Age]); So’rovlarda o’zgaruvchilarni ham ishlatish mumkin.bu holatdan oraliq hisob-kitoblarni amalga oshirishda foydalaniladi.Va biz uni Let operatori yordamida amalga oshiramiz. WPF texnologiyasi- (Windows Presentation Fandation) so’zidan olingan bo’lib,.NET platformasini ajralmas qismi bo’lib hisoblanadi va u grafik interfeyslar qurish uchun ishlatiladi.Ana’naviy grafik interfeyslarni qurish uchun Windows operatsion tizimining User 32 va GDI+ ilovalaridan foydalanilgan.WPF texnologiyasida esa Direc X dan foydalanamiz.Bu texnologiyaning asosiy xususiyatlaridan biri XAML tilidan foydalanib (XML ga asoslangan) boyitilgan grafik interfeyslarni yaratish hisoblanadi. WPF ning quyidagi ustunliklari mavjud: 1..NET platformasining C va VB.NET tillaridan foydalanib ishlatilishi. 2.Grafik interfeyslarni yaratishda XAML tilidan foydalanish. 3.WPF elementlari turli xil imkoniyatli ekranlarda moslashib ishlay olishligi. 4.WinForms yordamida amalga oshirilishi qiyin bo’lgan masalalarni yechish imkoniyatini mavjudligi.Masalan:3 o’lchamli modellarni yaratish.har xil stillar,shablonlar va temalardan foydalanish. 5.WPF WinForms bilan ishlay olish imkoniyatining mavjudligi ya’ni WinFormsning an’anaviy elementlarini WPF da ishlata olamiz. 6.Juda ko’p boy imkoniyatlarga egaligi. 7.Grafik elementlarini tez ishlatish imkoniyatining mavjudligi. 8.Windows XP dan boshlab Windows10 gacha bo’lgan OT larda ishlatilishi. WPF Presentation framework.dll ManagedAPI PresentationCore.dll Windows Base.dll Birlashtirish darajasi Milcore.dll WindowsCoders.dll Direct X User 32 XML bilan ishlashning yana bir usuli LINQ texnologiyasini qo’llash.XML bilan ishlash uchun zarur bo’ladigan LINQ ning barcha funksiyalari System.Xml.Linq nomlar fazosida joylashgan. {Nomlar fazosi C* dasturlash tilida funksiyalarni chaqirish uchun ishlatiladi.} Shu nomlar fazosining asosiy sinflari bilan tanishib chiqamiz: 1.XAttribute:XML elementning atributini ifodalaydi. 2.XComment:izohni ifodalaydi. 3.XDocument:To’liq XML hujjatni ifodalaydi. 4.XElement:XML ning alohida elementini ifodalaydi. Ularning orasida XElement asosiylaridan biri hisoblanadi. Quyidagi metodlarni ham sanab o’tamiz. 1.Add():Yangi atribut yoki element qo’shish uchun ishlatiladi. 2.Attributes():Ko’rsatilgan element uchun atributlar kolleksiyasini aniqlaydi. 3.Elements():Berilgan elementning barcha bola elementlarini qaytaradi. 4.Remove():Ona obyektining berilgan yoki ko’rsatilgan elementini o’chiradi. 5.RemoveAll():Berilgan elementning barcha bola elementlrini atributlarini o’chiradi. LINQ to XML ning funksiyalaridan foydalangan holda yangi XML hujjat ko’rishni ko’rib chiqamiz: XDocument X doc=newXDocument() //Yangi element yaratish XElement iphones6=new XElement(“phone”): //atribut yaratish. XAttribute iphoneNameAttr=newXAttribute(“name”,”IPhone6”); XElement iphoneCompanyElem=newXElement(“price”,”40000”); //Atributlar va elementlarni 1-elementga qo’shish. Iphone6.Add(iphoneNameAttr); Iphone6.Add(iphoneCompanyElem); Iphone6.Add(iphoneCompanyElem); //ikkinchi elementni yaratish. XElement galaxy5=new XElement (“phone”); XAttribute galaxysNameAttr=newXAttribute(“name”,”Samsung Galaxy S5”); XElement galaxysCompany Elem=newXElem(“Company”,”Samsung”); XElement galaxyPriceElem=new XElement(“price”,”33000”); Galaxys5.Add(galaxysNameAttr); Galaxys5.Add(galaxysCompanyElem); Galaxys5.Add(galaxysPriceElem); //O’zak elementini yaratamiz. XElement phones=new XElement(“phones”); //O’zak elementga qo’shamiz. Phones.Add(iphones6); Phones.Add(galaxyss5); //hujjatga o’zak elementini qo’shamiz. Xdoc.Add(phones); //hujjatni saqlaymiz Xdoc.Save(“phones.xml”); Natija quyidagi ko’rinishda bo’ladi: 40000 Endi yuqoridagi XML hujjatni C* tili yordamida elementlarini qiymatlarini o’qib olish va chiqarishni ko’rib chiqamiz. Misol: XDocument xdoc=XDocument.Load(“phones.xml”): Foreach(XElement.phoneElementinxdoc.Element(“phones”).Elements(“phone”)); { XAttribute nameAttribute(“name”); XElement companyElement=phoneElement.Element(“company”); XElement.priceElement=phoneElement.Element(“price”); If(nameAttribute!=null&&companyElement!=null&&priceElement!=null); { Console.WriteLine($”Smartfon:{nameAttribute.value}”); Console.WriteLine($”Компания:{companyElement.Value}”); Console.WriteLine($”Цена:{priceElement.Value}”); } Console.WriteLine(); Quyidagi natijaga ega bo’lamiz: Смартфон:IPhone6 Компания:Apple Цена:40000 Смартфон:Samsung Galaxy S5 Компания:Samsung Цена:33000. Download 83.5 Kb. Do'stlaringiz bilan baham: |
ma'muriyatiga murojaat qiling