ADO.NET. Управление базами данных. Связь по схеме OLE DB провайдера. Коррекция стилей DataGridView, страница 48

Теперь привяжем компонент gridExam к данным таблицы экзаменов, но не прямо, а через объект DataRelation relationStudsExams, который имеется в составе класса StudentsDataSet. Вы помните, что в механизме DataBinding большую роль играют имена свойств. Вот и теперь в коде файла StudentsDataSet.Designer.cs мы можем увидеть такую строку кода (с точностью до this.).

relationStudsExams = Relations["StudsExams"];

·  Учитывая сказанное, откройте диалог DataGridView Tasks, нажав Smart Button компонента gridExam, и в качестве его источника данных выберите строку StudsExams. Она вложена внутрь узла studsBindingSource, как показано на рисунке.

Анализируя графическое отображение схемы, вы, вероятно, заметили, что адаптеры имеют по два метода GeData и Fill. Этого недостаточно для внесения изменений в БД. Поэтому нам надо внести изменения в конфигурацию адаптеров. Эта задача решается с помощью мастера TableAdapter Query Configuration Wizard.

·  Вновь откройте схему набора данных StudentsDataSet.xsd.

·  Поставьте фокус в строку таблицы StudsTableAdapter, вызовите ее контекстное меню и выберите команду Add Query. Эта команда открывает мастер конфигурации адаптера связи.

·  Первая страница оставляет нам только один вариант выбора запроса (Use SQL statements). Другие два варианта (создание хранимой процедуры и использование готовой хранимой процедуры) недоступны. Они доступны при работе с SQL Server.

·  На второй странице мастера выберите строку INSERT и нажмите кнопку Next.

·  Следующая страница предлагает скорректировать созданный по умолчанию запрос:

   INSERT INTO `Studs` (`Name`, `Phone`, `Addr`) VALUES (?, ?, ?)

·  Так как он нас вполне устраивает, согласитесь с предложенным текстом, нажав кнопку Next.

·  На следующей странице скорректируйте имя метода так, чтобы оно стало InsertStud и нажмите кнопку Next.

Автоматическое создание объектов ADO.NET

Использование Server Explorer

Рассмотрим, как с помощью инструмента студии Server Explorer создать новую базу данных, ввести в нее таблицу и управлять ее данными с помощью объектов ADO.NET.

·  Создайте новый проект типа Visual C# Windows Application с именем StudentsSql и разместите на форме компонент DataGridView, назвав его grid.

·  Поставьте фокус на тот узел дерева в окне Server Explorer, который соответствует имени вашего экземпляра SQL Server'а.

·  В контекстном меню выберите команду New Database. В окне диалога Create Database задайте имя новой базы — Students, а также способ аутентификации — Use Windows NT Integrated Sequrity и нажмите OK.

·  Поставьте фокус на узел Students®Tables в дереве окна Server Explorer и в его контекстном меню выберите команду New Table. По этой команде студия открывает окно дизайнера таблиц, в котором следует задать структуру новой таблицы.

·  Cоздайте таблицу, набор и атрибуты столбцов которой показаны ниже. Имя такблицы (StudentsList) вы сможете задать в момент ее сохранения. Для первого столбца таблицы не забудьте установить свойство первичного ключа (команда Diagram®Set Primary Key), а также режим его автоматической нумерации (выбрав для свойства Identity значение Yes).

·  Поставьте фокус на узел Students®Tables®StudentsList в дереве окна Server Explorer и в его контекстном меню выберите команду Retrieve Data from Table. Эта команда открывает окно редактора данных таблицы.

·  Введите несколько строк данных. Заметьте, что данные попадают в таблицу и сохраняются там в момент перевода фокуса в новую строку.

·  Введите изменения в проект StudentsSql так, чтобы он смог связаться с новой базой данных и прочесть данные из ее единственной таблицы.

Ниже показаны упрощенные версии изменений. Упрощения касаются лишь способа объявления объектов. Вы знаете, что наличие директив using позволяет вместо полной квалификации имен использовать их краткие версии. Например, вместо имени System.Data.SqlClient.SqlConnection задаем его краткую версию SqlConnection.

 Container components = null;

 DataGridView grid;