Информационный сайт

 

Реклама
bulletinsite.net -> Книги на сайте -> Вебмастеру -> Сеппа Д. -> "Microsoft ADO.NET" -> 92

Microsoft ADO.NET - Сеппа Д.

Сеппа Д. Microsoft ADO.NET — М.: Русская Редакция, 2003. — 640 c.
ISBN 5-7502-0223-2
Скачать (прямая ссылка): mcrsftado2003.pdf
Предыдущая << 1 .. 86 87 88 89 90 91 < 92 > 93 94 95 96 97 98 .. 260 >> Следующая

Однако в • \ i Т строка — это строка. Независимо от того, имеет ли тип данных БД переменную или фиксированную длину, использует ли он однобайтовое или двубайтовое представление, тип данных объекта DataColumn — просто string. Свойство DataType объекта DataColumn работает с типами данных .NET, а, не типами данных БД.
Значение свойства DataType объекта DataColumn по умолчанию — string. У объекта есть конструктор, позволяющий указать имя и тип данных
создаваемого столбца. Метод Add объекта DataColumnCollection аналогичным образом перегружен и позволяет указать значения свойств и DataType нового объекта DataColumn, создаваемого в объекте DataTable:
Visual Basic .NET
iDim ds As New DataSetO
Dim tbl As DataTable = ds.Tables. AddCCrders")
IDim col As DataColumn = tbl.Columns.Add("OrderlD", GetType(Integer))
Visual C# .NET
OaiaSet ds = new DataSetO;
DataTable tbl = ds.Tables.Add("Orders');
DataColumn col = tbl.Columns.AddCOrderlD", typeof(int));
Тип данных свойства DataType — Type. Предыдущий фрагмент кода показывает, как получить значение Туре, соответствующее типу данных integer. В целях обратной совместимости Basic >|!. и Visual С* ' ', генерируют типы по-
средством разных функций. До появления .NET функция typeof быпш в С++, и в Visual Basic, однако возвращаемые ей сведения зависели от используемого языка программирования. В результате в Visual Basic добавили функцию веТРуревозврг-
щающую информацию о типах.
Добавление первичного ключа
Ранее я уже объяснял, чем программная проверка данных в объектах DataColumn и DataTable лучше использования объекта DataAaapter, обращающегося для проверки данных к БД. Мои пояснения оказались бы пустым звоном, если бы я не
ГЛАВА 6 Работа с объектами DataSet
189
рассказал, как задать объектов IhtkiCotntms иПаиЯжк , обеспечивающие
проверку данных.
Как вы помните, я начал с описания свойств AllowDBNulLReadonly, MaxLength и Unique объекта DataColumn и того, как с их помощью проверять данные столбцов. Задать значения этих свойств в коде очень просто.
Visual Basic .NET
ГЯл ds As New Deta8st()
Dim tbl As DataTable = ds.Tables.Add{"Customers") Dim col As DataColumn = tbl.Columns.AddC'CustomerlD") col.AllowDBNull = False col, MaxLengtti = 5 col.Unique = True
Visual C# .NET
DataSet ds new DataSet();
DataTable tbl = ds.Tables.Add("Customers");
DataColumn col = tbl.Columns.AddC'CustomerlD");
col.AllowDBNull = false;
col.MaxLength = 5;
col.Unique = true;
Определить первичный ключ для объекта DataTable гораздо сложнее. Свойство PrimaryKey содержит массив объектов DataColumn, в связи с чем ему нельзя просто задать имена столбцов, составляющих первичный ключ.
Первичный ключ одних объектов DataTable состоит из единственного столбца, а других — из комбинации столбцов. В следующем фрагменте кода вам встретятся оба этих варианта. Первичный ключ таблицы Customers состоит из одного столбца.Сшготегт, а первичный ключ таблицы Order Details - из столбцов OrderlD и ProductlD. В каждом случае нужно создать массив объектов DataColumn и задать его свойству РггтагуКеу объекта DataTable:
Visual Basic NET
Dim ds As New Data.S6t{)
'Создаем объект DataTable с именем Customers, With ds.Tables.Add("Customers")
.Columns.Add("CustomerID", GetType(String))
New
End With
¦Создав!* объект DataTable с именем Order Details With ds.Tables.Add("0rder Details")
.Columns.Add("OrderlD", QetType(Integer)) .Columns.Add("ProductID", GetType(Integer))
.PrimaryKey = New DataColumnO {.Columns("OrderlD"), _
.Columns<"ProductlD"))
End With
190
Часть III Автономная работа с данными: объект DataSet модели Л.DO NET
Visual C# NET
DataSet ds = new DataSetO: DataTable tbl;
//Создаем объект DataTable с именем Customers
tbl = ds.Tables.Add("Customers");
tbl.Columns.Add("CustomerlD", tvpeof(string));
tbl.PriffiaryKey = new DaTaColumn[] {tbl Columns[ "CustotierlD ]};
//Спадаем объект DataTable с именем Order Details tbl = ds.Tables.Add("Order Details"); tbl.Columns.Add("OrderlD", typeof(int)); tbl. Columns.Add("ProductID", typeof(int));
tbl.PrimaryKey = new DataColumn[] {tbl.Columns["OrderlD"],
tbl. Columns["ProductID"]};
Примечание После того как вы определите первичный ключ
AVIO.NET автоматически задаст свойству Мои ШШЬбъектов DataColumn, составляющих этот ключ, значение False,
Добавление других ограничений
Наиболее широко используемое ограничение — это первичный ключ, однако в объект DataTable разрешается добавлять также и уникальные и внешние ключи. У набора Constraints объекта DataTable есть перегруженный метод Add, позволяющий определять ограничения PrimaryKey, UniqueKeyn ForeigriKey. Следующий фрагмент кода с помощью метода Add добавляет простой и составной первичные ключи, а также создает внешний ключ.
Код добавляет в объект DataTable Customers уникальный ключ, основанный на столбце CustomerlD, а объект DataTable Order Details - уникальный ключ, основанный на столбцах OrderlD и ProducUD. Кроме того, он создает в таблице Order Details внешний ключ, чтобы гарантировать, что значениям столбца OrderlD соответствует одна из записей таблицы Orders.
Предыдущая << 1 .. 86 87 88 89 90 91 < 92 > 93 94 95 96 97 98 .. 260 >> Следующая
Реклама
Авторские права © 2009 AdsNet. Все права защищены.
Rambler's Top100