Заповнення набору даних Microsoft Docs

Стандартний механізм Visual Studio для виконання запитів Transact-SQL для заповнення наборів даних є адаптером таблиці TableAdapter.

Виконувати інструкції SQL або процедури, що зберігаються над джерелом даних, можна за допомогою адаптерів таблиць TableAdapter або об'єктів команд (наприклад SqlCommand). Для завантаження даних у набір даних, створений за допомогою засобів розробки у Visual Studio, використовуйте адаптери таблиць TableAdapter. Для завантаження даних у набір даних, створений програмно, використовуйте адаптери для обробки даних. Якщо програма не використовує набір даних, використовуйте об'єкти команд для виконання інструкцій SQL або процедур, що зберігаються безпосередньо над базою даних.

У наступних розділах містяться відомості про заповнення наборів даних Visual Studio:

Надає докладні відомості про завантаження даних у набори даних за допомогою адаптерів таблиць та адаптерів даних.

Надає докладні відомості про створення та виконання інструкцій SQL, які повертають рядки за допомогою запитів адаптерів таблиць та командних об'єктів.

Надає докладні відомості про створення та виконання інструкцій SQL, що повертають окремі значення, за допомогою запитів адаптерів таблиць та командних об'єктів.

Надає докладні відомості про створення та виконання інструкцій SQL, які не повертають значень за допомогою запитів адаптерів таблиць та командних об'єктів.

Надає детальну інформацію про виконання збережених процедур, що повертають рядки, за допомогою запитів адаптерів таблиць та командних об'єктів.

Надає детальну інформацію про виконання збережених процедур, що повертають окремі значення, за допомогою запитів адаптерів таблиць та командних об'єктів.

Надаєдокладні відомості про виконання збережених процедур, які не повертають значень за допомогою запитів адаптерів таблиць та командних об'єктів.

Надає докладні відомості про присвоєння значень параметрів запитів і процедур, що зберігаються, і читання значень параметрів, що повертаються виконуваними командами.

Надає докладні відомості про створення набору даних та його заповнення даними з бази даних.

Надає докладні відомості про створення програми Windows, яка завантажує XML-дані в набір даних, а потім відображає його в елементі керування DataGridView.

Заповнення наборів даних

Якщо створюється набір даних, що створюється за допомогою засобів розробки Visual Studio (таких, як Конструктор наборів даних або майстер налаштування джерела даних), використовуйте адаптер таблиці TableAdapter для його заповнення. Адаптери таблиць TableAdapter виконують інструкції SQL або процедури, що зберігаються.

Якщо набір даних створюється без використання засобів розробки, необхідно використовувати адаптери обробки даних для заповнення та оновлення даних. (Адаптери таблиці TableAdapter фактично є класами в .NET Framework 4, тому вони непридатні до роботи з наборами даних, створених без використання засобів розробки). Щоб отримати додаткові відомості про завантаження даних у набори даних, використовуючи адаптери таблиць TableAdapter або адаптери обробки даних, див. Практичний посібник. Заповнення даних набору даних.

Запити адаптера таблиць TableAdapter

Можна виконувати запити адаптера таблиць для занесення даних до наборів даних (точніше, для завантаження даних до об'єктів DataTable, що становлять набір даних). Можна створити запити адаптера таблиць 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 або ім'я процедури, що зберігається. Після цього можна виконати команду даних за допомогою одного з методів execute (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 для Oracle не підтримує пакетні інструкції SQL. Проте в ньому можна використовувати кілька вихідних параметрів REF CURSOR для заповнення набору даних, кожен у своїй власній таблиці. їх типи даних REF CURSOR.Зверніть увагу, що при заповненні об'єкта OracleDataAdapter з параметрів REF CURSOR в процедуру, що зберігається, неможливо використовувати метод Update, оскільки Oracle не надає відомостей, необхідних для визначення імені таблиці та імен стовпців при виконанні інструкції SQL.

Безпека

При використанні команд для обробки даних з властивістю CommandType, що дорівнює Text, уважно перевірте відомості, які надсилаються клієнтом, перед передачею їх базі даних. Зловмисники можуть спробувати надіслати (вставити) змінені або додаткові інструкції SQL з метою отримання несанкціонованого доступу до бази даних або її пошкодження. Перш ніж передавати введення користувача в базу даних, необхідно завжди перевіряти допустимість даних. Рекомендується по можливості використовувати запити з параметрами та процедури, що зберігаються.