2. Работа с наборами типизированных данных

Область клиента

текст это то что будет

Область клиента начинается сразу под линейкой заголовка и внутри границы, нарисованной вокруг окна. Текст — это то, что будет показано на лицевой поверхности кнопки при ее отображении на форме. Для этой кнопки подойдет размер по умолчанию, поскольку текст короткий. Если вам нужно будет специфицировать для текста кнопки более длинные строки, вы должны будете настроить размер кнопки, чтобы он соответствовал тексту, или, еще лучше, установить в True Свойство AutoSize.

Для сетки вы создаете ее экземпляр, задавая как размер, так и положение, чтобы поместить ее под кнопкой, но внутри границ формы. На самом деле существует множество различных опций для расположения элементов управления на форме, и сетка сама по себе очень сложный тип. Но она хорошо спроектирована, так что для простых применений вам потребуется всего несколько строчек кода. Как только все элементы управления созданы и их свойства установлены, вы добавляете их к коллекции Controls Формы при помощи метода Add Класса коллекции. Это делает их дочерними элементами управления на форме. Когда форма отображается, она перебирает список дочерних элементов управления, давая каждому из них команду нарисовать себя на форме, используя свои свойства и встроенное поведение рисования. Каждый элемент управления инкапсулирует свои собственные состояние и поведение, относящиеся как к характеру и способу своего рисования, так и событиям, которые он будет запускать в процессе взаимодействия с пользователем или системой. Когда вы снова компилируете и запустите из командной строки это приложение, то получите форму побольше с кнопкой и пустой сеткой на ее поверхности. Для окончательной модификации этого примера вам потребуется добавить обработчик для события Click Кнопки, загрузить в этом обработчике некоторые данные и привязать их к сетке.

Командная строка Visual Studio

теперь у вас должен быть

Имейте в виду, что если вы не используете командную строку Visual Studio, то вас должны быть установлены соответствующие переменные среды, позволяющие Windows найти компилятор командной строки. Теперь у вас должен быть файл DataAppForm. exe, который вы можете запустить. Если вы это сделаете, то получите пустое квадратное окно. Это довольно скучно, поэтому давайте добавим к форме сетку и кнопку. Листинг В.1 показывает изменения в классе, которые потребуются для того, чтобы добавить кнопку и сетку и разумным образом расположить их.

Код в листинге B. l несколько более сложен, поэтому давайте разберем его последовательно. Прежде всего вам потребуется дополнительное пространство имен System.Drawing Для классов Size И Point, Которые используются для спецификации положения и размера каждого из элементов управления, добавляемых к форме в качестве дочерних элементов. В дан-ном случае вы добавляете элементы Button И DataGridView, Определенные как классы элементов управления в пространстве имен System.Windows. Forms. Затем в конструкторе класса вы создаете экземпляры этих элементов, устанавливаете для них необходимые свойства, после чего добавляете их к коллекции дочерних элементов управления, которую хранит форма.

Для формы вы изменяете ее размер, обращаясь к свойству Size Базового класса Form И устанавливая его равным 500 на 400 пиксел. Затем вы создаете экземпляр класса Button И устанавливаете положение и текст кнопки. Специфицируемое положение указывается относительно верхней левой части клиентской области формы, с положительными значениями по оси х, возрастающими вправо, и положительными значениями по оси у, возрастающими вниз.

Получение правильных имен таблиц

свойство b tablemappings b содержит

Другим способом получения правильных имен таблиц, также как и обработки случая, когда имя столбца в базе данных отличается от имени столбца в целевом наборе данных, является использование свойства TableMappings Адаптера данных. Свойство TableMappings Содержит коллекцию объектов типа DataTableMapping, Который определяется в пространстве имен System. Data. Common. Каждый объект DataTableMapping Позволяет специфицировать отображение между схемой результирующего набора, возвращаемого от базы данных, и схемой таблицы данных, в которую адаптер данных поместит результаты. Следующий код показывает пример использования TableMappings Для модификации имени таблицы и имен столбцов, когда адаптер заполняет набор данных. В этом коде данные, поступающие от оператора SELECT, были бы помещены в таблицу с именем Table со столбцами CustomerlD и CompanyName. Вместо этого благодаря созданному отображению таблица будет названа Customers, и она будет иметь столбцы ID и Name, на которые будут отображаться соответствующие столбцы из базы данных. Большинство классов данных в ADO. NET предлагают перегруженные конструкторы и методы, позволяющие вам специфицировать все параметры, необходимые объекту для работы, либо вы можете устанавливать их через свойства. На самом деле это просто вопрос предпочтений. Подход с использованием свойств, показанный ранее, требует большего числа строк кода, но для некоторых такой код несколько легче читать, и его проще отлаживать, так как вы можете шагать по строкам и инспектировать значение свойств по мере их установки. В этой книге я отдавал предпочтение подходу с конструкторами, чтобы для ее издания не потребовалось срубить слишком много деревьев. Какой подход будет лучшим для вашего кода, решать вам.