DataReader bilan ma’lumotlarni o`qish. DataReader sinfi SELECT buyrug'i tomonidan qaytarilgan ma'lumotni bir satrda, bir marotaba o'qishga mo'ljallangan o'qishda o'qish imkoniyatini beradi. Bunga ba'zan kursor deyiladi. DataReaderdan foydalanish ma'lumotlarni olishning eng oson usuli hisoblanadi, ammo u DataSetni mustaqil ravishda saralash va bog'lash imkoniyatiga ega emas. Biroq, DataReader ma'lumotlarga kirishning eng tezkor usulini taqdim etadi. DataReaderning asosiy usullari quyidagilardan iborat:
Chiziq kursorini oqimning keyingi qatoriga o'tkazadi. Ushbu usul ma'lumotlarning birinchi qatorini o'qishdan oldin ham chaqirilishi kerak (DataReader birinchi marta yaratilganda, satr kursori birinchi qatordan oldin darhol joylashadi.) Read () usuli agar o'qish kerak bo'lgan keyingi satr bo'lsa true yoki oxirgi satr o'qilganida false qaytaradi. yollash
GetValue()
Belgilangan satr ichidagi ko'rsatilgan ustun nomi yoki indeks bilan maydonda saqlangan qiymatni qaytaradi. Qaytish turi ma'lumotlar manbasida saqlangan o'rnatilgan qiymatga eng yaqin bo'lgan .NET turidir. Agar siz indeks bo'yicha maydonga murojaat qilsangiz va bexosdan mavjud bo'lmagan maydonga tegishli bo'lgan noto'g'ri indeksni o'tkazsangiz, siz IndexOutOfRangeException olasiz. DataReader uchun indeksatordan foydalanib, siz maydon nomi bilan qiymatni olishingiz mumkin
GetValues()
Bir qatorda joriy qatorning qiymatlarini saqlaydi. Saqlanadigan maydonlar soni ushbu usulga o'tgan qatorning hajmiga bog'liq. DataReader.FieldCount xususiyatidan foydalanib, siz ketma-ket maydonlarning haqiqiy sonini aniqlay olasiz va agar siz uning barcha maydonlarini saqlashingiz kerak bo'lsa, kerakli o'lchamdagi qator yaratishda ushbu ma'lumotlardan foydalanishingiz mumkin.
GetInt32(), GetChar(), GetDateTime(), Get...()
Ushbu usullar joriy satrda ko'rsatilgan indeks bilan maydonning qiymatini qaytaradi va ma'lumotlar turi usul nomida ko'rsatilgan. E'tibor bering, agar siz qaytarilgan qiymatni noto'g'ri turdagi o'zgaruvchiga belgilashga harakat qilsangiz, InvalidCastException tashlanadi. Bunga qo'shimcha ravishda, ushbu usullar NULL qiymatlariga imkon beradigan turlarni qo'llab-quvvatlamaydi.
NextResult()
Agar maydon nullni o'z ichiga olishi mumkin bo'lsa, usullardan birini chaqirishdan oldin buni tekshirish kerak. null qiymatini tekshirish uchun, DBNull.Value doimiysi bilan tuzilmagan shaklda berilgan qiymatni (GetValue () yordamida pozitsiyani olish yoki DataReader indeksatori yordamida nom bilan olish mumkin) solishtiring.
Close()
Agar DataReader-ni yaratgan buyruq bir nechta satrlar to'plamini qaytargan bo'lsa, bu usul ko'rsatgichni keyingi qatorga o'tkazadi va uni birinchi qatordan oldin o'rnatadi.