Объект DataReader работает аналогично объекту DataSet, но обладает другими возможностями и характеристиками производительности. Одно из отличий отражено в его названии: объект DataReader считывает данные, т.е. он предоставляет доступ к данным только для чтения. Для объекта DataReader также не предусмотрен простой способ представления данных в формате XML.
Для простоты (что также рекомендуется делать на практике) в данной книге объект DataReader используется для выполнения базовых операций доступа к данным, а объект DataSet — только в случае крайней необходимости, например для создания Web-служб (более подробно они рассматриваются в главе 12, "Web-службы и технологии промежуточного уровня").
Объект DataSet устроен так же, как и объект ADODB.Recordset в прежних версиях языка Visual Basic. Аналогично другим типам объектов языка Visual Basic, объект DataSet имеет свойства и методы. Более подробно он рассматривается в других главах книги, а здесь достаточно отметить, что на платформе .NET объекты используются для организации в приложении ясного, согласованного и относительно простого способа работы с базами данных.
Один из этапов проектирования базы данных заключается в объявлении типа каждого поля, что позволяет процессору базы данных эффективно сохранять и извлекать данные. В SQL Server предусмотрено использование 21 типа данных, которые перечислены в табл. 1.1.
Таблица 1.1. Типы данных в SQL Server
Тип данных | Описание |
---|
bigint | Восьмибайтовое целое число в диапазоне от -9223372036854775808 до 9223372036854775807 |
binary | Двоичные данные фиксированного размера до 8 Кбайт |
char | Символьное поле фиксированного размера до 8000 символов |
datetime | Время и дата между 1 января 1753 года и 31 декабря 9999 года |
decimal | Десятичное число с фиксированной точностью и размером от 5 до 17 байт. Во время создания поля можно указать число десятичных знаков |
float | Десятичное число размером от 4 до 8 байт и не более 53 десятичных знаков после запятой |
image | Двоичные данные переменного размера до 2147483647 байт |
int | Четырехбайтовое целое число в диапазоне от -2147483648 до 2147483647 |
money | Числовое поле со специальными свойствами для сохранения денежных значений |
nchar | Символьное поле фиксированного размера до 4000 символов Unicode |
ntext | Символьное поле произвольного размера до 1 073 741 823 символов Unicode |
nvarchar | Символьное поле произвольного размера до 4000 символов Unicode |
real | Десятичное число размером 4 байта и не более 24 десятичных знаков после запятой |
smalldatetime | Время и дата между 1 января 1900 года и 6 июня 2079 |
smallint | Двухбайтовое целое число в диапазоне от -32768 до 32767 |
text | Символьное поле произвольного размера до 2147483647 символов (в базе данных Microsoft Access есть аналогичное поле типа Memo) |
tinyint | Однобайтовое целое число в диапазоне от 0 до 255 |
uniqueidentifier | Целое число, которое также называется глобально уникальным идентификатором и используется для уникальной идентификации записи (часто применяется для репликации данных) |
varbinary | Двоичные данные переменного размера до 8000 байт |
varchar | Символьные данные переменного размера до 8000 символов |
Хотя типы данных Visual Basic.NET более близки к типам данных полей SQL Server, чем типы данных Visual Basic 6, между ними все равно нет однозначного соответствия. Например, тип данных int в SQL Server соответствует типу integer в Visual Basic .NET, потому что оба они являются 32-битовыми целыми числами. Однако в SQL Server нельзя создать поле с определенным пользователем типом или типом Object языка Visual Basic .NET.
Для создания структуры базы данных рекомендуется не только подготовить список таблиц и полей, но и представить таблицы и поля в графическом виде. После этого вы не только сможете сказать, какие таблицы и поля доступны для вас, но и как они связаны друг с другом. Именно для этого и предусмотрена схема базы данных.
Схему можно представить как карту дорог для вашей базы данных. На схеме все таблицы, поля и отношения в базе данных изображаются графически. Схему базы данных важно рассматривать как часть процесса проектирования программного продукта, поскольку с ее помощью можно быстро понять, что происходит в базе данных.