Кіріспе

АДО-да. NET, DataReader - дерек көзінен деректерді ретті түрде оқу үшін қолданылатын объектілердің кең санаты. DataReaders деректерге қол жеткізудің өте тиімді әдісін ұсынады және ASP Classic-тен Firehose курсоры ретінде қарастырылуы мүмкін, бірақ сервер жағындағы курсор қолданылмайды. DataReader Microsoft SQL Server-тен кестелік деректер ағынын және басқа дерек көздерінен деректерді алудың басқа әдістерін талдайды. DataReader әдетте сұрау салуды, параметрлерді және сұрау салуды орындайтын қосылым объектісін қамтитын командалық объектпен бірге жүреді.

Деректерді оқу құрылғысының түрлері

ADO-да DataReader класы жоқ. NET, бірақ IDataReader интерфейсін іске асыратын бірқатар кластар бар: DataReaders-тің кішігірім жер бедері мен жақсы өнімділігі бар, өйткені әрқайсысы қолдағы тапсырмаға сай жасалған, бірақ бұл бір бэкэнд дерек көзінен екіншісіне көшірілетін бағдарламаны жазуды қиындатады. Кейбір провайдерлік DataReaders негізгі деректер қоры қолданатын типтерді көрсетеді, мысалы, Microsoft SQL Server-де мәндер нөлге тең болуы мүмкін, бірақ 2.0 нұсқасынан бұрын NET Framework-те емес.

Қуатты және әлсіз жазу

Деректерді алу үшін DataReader қолданғанда, әзірлеуші өрістің мәндерін мықты түрде (мысалы: ) немесе әлсіз түрде (мысалы: ) түрінде оқып, содан кейін s түрінде қайтара алады. Екі тәсілдің де жақсы және жаман жақтары бар. Қатты түрде келтірілген іздеу әдістерін қолдану, әсіресе негізгі деректерді нақты білмеу арқылы, күрделірек болуы мүмкін. Деректер қорындағы сандық мәндер бірнеше NET түрлеріне аударылуы мүмкін: , немесе қате түрді пайдаланып мәнді алуға тырысу ерекшелік шығарады, бұл кодты одан әрі орындауды тоқтатады және қолданбаны баяулатады. Бұл дұрыс түрді қолданған кезде де болады, бірақ мәнге тап болады (бұл DataReader класының бульдік функциясын пайдалану арқылы болдырмауға болады). Бұл іздеу әдісінің артықшылығы - деректерді тексерудің жылдамдығы, деректерді түзету ықтималдығын арттыру. Әлсіз типтегі деректерді алу жылдам код жазуға мүмкіндік береді және әзірлеуші қай типті қайтарылатынын алдын ала білмейтін кезде деректерді қандай да бір тәсілмен пайдалануға мүмкіндік береді. Бұдан әрі, белгілі бір күш-жігермен, бағдарламашы DataReader әдістерін қолдана отырып, мәнді тиісті түрдегі айнымалыға шығара алады.

Жалпы қателер

Кейбір жағдайларда DataReader DataTable орнына қолданылуы мүмкін, бірақ көптеген бағдарламашылар осы тәсілді қолданған кезде байланыс бұзылуын бастан кешірді. DataReader тек (егерде) ашық деректер қорына қосылыммен ғана пайдаланылуы мүмкін; бұл қосылым DataReader әдісі шақырылғанға дейін жабылмайды. Егер деректер өңделіп жатқан кезде ерекшелік шығарылса, мысалы жоғарыда Strong және weak typing-те сипатталғандай, егер әзірлеуші кодты нақты жариялап, DataReader-ді блоксыз пайдаланбайтын болса, әдіс ешқашан шақырылмайды. C# конструкциясы бұл мәселені болдырмаудың жақсы тәсілі болып табылады, төмендегі код мысалында көрсетілгендей.