Попълване на набор от данни, Microsoft Docs
Стандартният механизъм на Visual Studio за изпълнение на Transact-SQL заявки за попълване на набори от данни е TableAdapter.
Можете да изпълнявате SQL изрази или съхранени процедури срещу източник на данни, като използвате TableAdapters или командни обекти (като SqlCommand). За да заредите данни в набор от данни, създаден с инструментите за разработка във Visual Studio, използвайте TableAdapters. За да заредите данни в набор от данни, създаден програмно, използвайте адаптери за данни. Ако вашето приложение не използва набор от данни, използвайте командни обекти, за да изпълните SQL изрази или съхранени процедури директно срещу базата данни.
Следните раздели предоставят информация за попълването на набори от данни в Visual Studio:
Осигурява подробности относно зареждането на данни в набори от данни с помощта на TableAdapters и DataAdapters.
Осигурява подробности за създаването и изпълнението на SQL изрази, които връщат редове с помощта на заявки на TableAdapter и командни обекти.
Предоставя подробна информация за създаването и изпълнението на SQL изрази, които връщат единични стойности с помощта на заявки на TableAdapter и командни обекти.
Предоставя подробна информация за създаването и изпълнението на SQL изрази, които не връщат стойности с помощта на заявки на TableAdapter и командни обекти.
Осигурява подробности относно изпълнението на запомнени процедури, връщащи ред, като се използват заявки на TableAdapter и командни обекти.
Предоставя подробна информация за изпълнението на съхранени процедури с една стойност с помощта на заявки на TableAdapter и командни обекти.
ОсигуряваПодробна информация за изпълнението на съхранени процедури, които не връщат стойности с помощта на заявки на TableAdapter и командни обекти.
Предоставя подробна информация за присвояване на стойности на заявка и параметри на съхранена процедура и четене на стойности на параметри, върнати от команди, които се изпълняват.
Предоставя подробности за създаването на набор от данни и попълването му с данни от базата данни.
Предоставя подробности за създаването на Windows приложение, което зарежда XML данни в набор от данни и след това ги показва в контрола DataGridView.
Попълване на набори от данни
Ако създаваният набор от данни е създаден с помощта на инструментите за създаване на Visual Studio (като Dataset Designer или Data Source Configuration Wizard), тогава използвайте TableAdapter, за да го попълните. TableAdapters ще изпълни SQL изрази или съхранени процедури.
Ако създавате набор от данни, без да използвате инструменти за създаване, трябва да използвате адаптери за обработка на данни, за да попълните и актуализирате данните. (TableAdapters всъщност не са класове в .NET Framework 4, така че не са подходящи за работа с набори от данни, които са създадени без използването на инструменти за авторство.) За повече информация относно зареждането на данни в набори от данни с помощта на TableAdapters или Data Processing Adapters вижте Как да. Попълване на набор от данни с данни.
Заявки на TableAdapter
Можете да изпълнявате заявки на TableAdapter, за да попълните данни в набори от данни (по-конкретно, за да заредите данни в DataTables, които съставят набор от данни). Можете да създавате заявки за TableAdapter с помощта на съветника за конфигуриране на заявкиTableAdapter вDataset Builder. Заявките на TableAdapter се появяват като наименувани методи на TableAdapter и се изпълняват чрез извикване на метода TableAdapter на TableAdapter. За повече информация относно създаването и изпълнението на заявки на TableAdapter вижте следните страници:
Командни обекти
Командните обекти предоставят възможност за изпълнение на SQL изрази и съхранени процедури директно срещу база данни без използване на DataSet, TableAdapter или DataAdapter. (Терминът команден обект се отнася до конкретната команда на доставчика на данни .NET Framework, която вашето приложение използва. Например, ако приложението ви използва доставчика на данни .NET Framework за SQL Server, командният обект ще бъде SqlCommand.)
Командите за заявка на данни се конфигурират с помощта на SQL изрази или съхранени процедури чрез задаване на свойството CommandType на командата за данни на една от стойностите в изброяването на CommandType. Задайте CommandType на Text, за да изпълните SQL изрази, или на StoredProcedure, за да изпълните съхранени процедури. След това задайте свойството CommandText на текста на SQL израза или името на съхранената процедура. След това можете да изпълните командата за данни, като извикате един от методите за изпълнение (ExecuteReader, ExecuteScalar, ExecuteNonQuery).
Всеки от доставчиците на данни на .NET Framework (ADO.NET) предлага команден обект, който е оптимизиран за определена база данни.
С команди за данни можете да извършвате следните действия в приложение.
Изпълнявайте DDL команди за създаване, редактиране и изтриване на таблици, съхранени процедури и други структури на бази данни. (Разбира се, имате нужда от съответните разрешения, за да извършите тези действия.)
Изпълнявайте команди заполучите информация за директорията на базата данни.
Изпълнявайте динамични SQL команди за актуализиране, вмъкване или изтриване на записи, вместо да актуализирате таблици с набор от данни и след това да копирате промените в базата данни.
Изпълнява команди, които връщат скаларна стойност (т.е. единична стойност), като например резултат от агрегатна функция (SUM, COUNT, AVG и т.н.).
Изпълнявайте команди, които връщат данни от база данни на SQL Server 7.0 или по-нова версия в XML формат. Обикновено те се използват за изпълнение на заявка, получаване на резултатите в XML формат, прилагане на XSLT трансформация (за преобразуване на данните в HTML) и след това изпращане на резултатите до браузъра.
Свойствата на командата съдържат цялата необходима информация за прилагане на команди към база данни. Това включва следната информация.
Връзка. Командата се отнася до връзката, използвана за комуникация с базата данни.
Име или текст на командата. Командата включва действителния текст на SQL израза или името на съхранената процедура, която трябва да бъде изпълнена.
Параметри. За да се изпълни команда, понякога е необходимо да се подадат параметри (входни параметри) заедно с нея. Командата може също да върне данни като върната стойност или изходни параметри. Всяка команда има колекция от параметри, които могат да бъдат зададени или прочетени поотделно, за да предават или получават стойности. За повече информация вижте Как да. Задаване и получаване на параметри на командни обекти.
Командите се изпълняват с помощта на методи, които отговарят на очакваните резултати. Например, ако се очакват редове, извикайте метода ExecuteReader, който връща записи на четеца на данни. Когато изпълнявате UPDATE, INSERT илиDELETE се извиква методът ExecuteNonQuery на командата, който връща броя на редовете, засегнати от командата. Когато изпълнявате агрегатна функция, като например връщане на броя на поръчките за клиенти, извикайте метода ExecuteScalar.
Множество набори от резултати
Обикновено командните обекти се използват за връщане на една таблица с данни (набор от редове). Командите обаче могат да изпълняват процедури, които връщат множество набори от резултати. Това може да се постигне по различни начини. В някои случаи командата се отнася до съхранена процедура, която връща множество набори от резултати. В други командата съдържа две или повече инструкции или имена на запомнени процедури. В този случай изразите или процедурите се изпълняват последователно и връщат множество набори резултати в едно извикване.
Ако една команда съдържа множество изрази или процедури, всички те трябва да са от един и същи тип. Например, можете да изпълните множество SQL изрази или множество запомнени процедури една след друга. Не можете обаче да смесвате извиквания на запомнени процедури и SQL изрази в една и съща команда. За повече информация вижте Извличане на данни с DataReader (ADO.NET).
Когато работите с Oracle, .NET Framework Data Provider за Oracle не поддържа групови SQL изрази. Въпреки това, той може да използва множество изходни параметри REF CURSOR, за да попълни набор от данни, всеки в своя собствена таблица. Трябва да дефинирате параметрите, да ги маркирате като изходи и да посочите типовете данни REF CURSOR за тях. колони, когато изпълнявате SQL израза.
Безопасност
Когато използвате команди за обработка на данни със свойството CommandType, зададено на Text, внимателно прегледайте информацията, изпратена от клиента, преди да я предадете към базата данни. Нападателите могат да се опитат да изпратят (вмъкнат) модифицирани или допълнителни SQL изрази, за да получат неоторизиран достъп до базата данни или да я повредят. Преди да подадете потребителски вход към базата данни, винаги трябва да проверявате валидността на данните. Препоръчваме ви да използвате параметризирани заявки и съхранени процедури, когато е възможно.