Технология Microsoft ADO.NET




Понятие DataSet, DataTable и DataColumn - часть 2


DataSet не может сам сформировать структуру данных - тип переменных, первичные и вторичные ключи, связи между таблицами. Для управления структурой, для сложного отображения (например, вывод информации с привязкой к элементам, создаваемым в режиме работы приложения) и нужно определение этих объектов.

Лучший способ разобраться с работой всех объектов - применить их на практике. Создадим простую тестовую программу, в которой можно отвечать на вопросы, перемещаться по ним и определять количество верных ответов. Для хранения вопросов и вариантов ответов создадим базу данных Tests Microsoft SQL. База будет состоять всего из двух таблиц (рис. 8.1):

Структура базы Tests (диаграмма "QuestVar")

Рис. 8.1.  Структура базы Tests (диаграмма "QuestVar")

Каждый вопрос будет содержать несколько ответов, для синхронного перемещения по структуре нужна связь по полю questID. Галочка "Allow Nulls" (Разрешить пустые значения) снята для всех полей - это означает, что все поля будут обязательными для заполнения. Структура таблиц Questions и Variants приводится в таблице 8.1:

Таблица 8.1. Структура таблиц базы данных Tests

Таблица Поле Описание поля
Questions - таблица вопросов questID Номер вопроса
question Текст вопроса
questType Тип вопроса (с одним правильным вариантом ответа или с несколькими)
Variants - таблица вариантов ответов id Номер ответа
questID Номер вопроса
variant Текст варианта ответа
isRight Является ли данный вопрос верным

Для нас не столь важно количество вопросов, поэтому их всего будет пять, относящихся к теме операционной системы Windows XP. Одному вопросу может соответствовать один правильный вариант ответа - в этом случае в поле questType указывается значение "0". Далее на форме эти варианты будут выводиться с элементами RadioButton. Для вопросов, у которых есть несколько правильных вариантов ответов, указывается в поле questType значение "1". На форме такие варианты будут выводиться с чекбоксами. В таблицах 8.2 и 8.3 приводится содержимое таблиц Questions и Variants.




Содержание  Назад  Вперед