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




Программное создание объектов


Еще в первой лекции мы узнали, что все объекты вкладки Data или все объекты ADO .NET можно создавать программно. Скопируйте папку приложения Tests и назовите ее "ProgrammTests". Открываем проект, удаляем объект DataSet с панели компонент формы. Для создания этого объекта программно достаточно следующей строчки кода:

DataSet dsTests = new DataSet();

Поскольку созданный экземпляр dsTests будет использоваться в нескольких методах, эту строку следует написать в классе формы. Здесь dsTests - это название объекта DataSet, которое мы затем используем в коде - это известно нам с первой лекции. Среда Visual Studio .NET однако, сгенерировала следующий фрагмент кода (его можно найти в исходном проекте "Tests"):

this.dsTests = new System.Data.DataSet(); ... // // dsTests // this.dsTests.DataSetName = "NewDataSet"; this.dsTests.Locale = new System.Globalization.CultureInfo("ru-RU");

Как всегда, автоматический код избыточен - здесь указывается культура ru-RU. Дело в том, что у меня установлена русская версия Windows XP и соответствующие региональные настройки.

Среда определила еще свойство DataSetName = "NewDataSet", эквивалентное описание будет иметь следующий вид:

DataSet dsTests = new DataSet("NewDataSet");

Что же это за еще одно название объекта DataSet? Свойство DataSetName используется для работы с XSD-схемами, пока про это название (до лекции 10) мы можем просто забыть.

Создадим теперь объект DataTable для таблицы Questions:

DataTable dtQuestions = dsTests.Tables.Add("Questions"); //Или //DataTable dtQuestions = new DataTable("Questions"); //dsTests.Tables.Add(dtQuestions);

Здесь мы создаем экземпляр dtQuestions объекта DataTable, затем вызываем метод Add свойства Tables объекта dsTests, которому передаем название таблицы Questions. Далее создаем поля в объекте dtQuestions:

DataColumn dсQuestID = dtQuestions.Columns.Add("questID", typeof(Int32)); dсQuestID.Unique = true; DataColumn dcQuestion = dtQuestions.Columns.Add("question"); DataColumn dcQuestType = dtQuestions.Columns.Add("questType", typeof(Int32));




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