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

 

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

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

Сеппа Д. Microsoft ADO.NET — М.: Русская Редакция, 2003. — 640 c.
ISBN 5-7502-0223-2
Скачать (прямая ссылка): mcrsftado2003.pdf
Предыдущая << 1 .. 147 148 149 150 151 152 < 153 > 154 155 156 157 158 159 .. 260 >> Следующая

Вопрос. Какие возможности доступны при генерировании класса с помощью утилиты XML Schema Definition Tool?
Ответ. В разделе «Using Vimnuci,,1Ъwith a Typed DataSet* справочной системы VL i Framework SDK перечислены рзх?ич:<*;« способы управления именами классов со строгим контролем типов, генерируемых этой утилитой. Там также описана реакция свойств классов DataSet со строгим контролем типов, содержащих зна-чекия NULL. УтилитаХМЬ Schema Definition Tool просматривает ваш .xsd-файл на предмет аннотаций, перечисленных в документации.
Добавить аннотации в объекта DataSet средствами пользовательского
интерфейса конструктора XML Schema нельзя. Вы можете переключиться на XML-представление и добавить нужные аннотации вручную. Кроме того, можно добавить аннотации в класс DataSet в коде и затем сохранить схему объекта DataSet в посредством метода этого объекта.
Набор Р:.-'г:.''У,.^'--;.: объектов / Huaiithk и IhttaCofitiritisупрощает программное добавление аннотаций в объект DataSet:
ГЛАВА 9 Работа с объектами DataSet со строгим контролем типов 345
Visual Basic .NET
Dim cis As New DataSat<) ds.DataSetName = "NameForYourNewClass'
Dim tbl As DataTable = ds. Tables. Add("Tat)le1")
'Dim col As DataColumn
'Згдее» имя сСьекта Dalafiow со строгим контролем типов для объекта DataTable tbl. ExtendedProperties.Add("typedName", "MyTablelRow")
"Задае» имя свойства DataTable объекта DataSet tbl. ExtendedProperties.Add("typedPlural". "HyTablelRows")
col = Ш. Columns. Add("StringColumn", GetType(String)) 'Ecnt поле содержит значение NULL, пусть класс возвращает "<Null>" col.Extended?горе rties.Add("nullValue", "<Null>")
col =
"t';r; поле содержит значение NULL, пусть класс возвращает String-Empty col. ExtendedProperties.Add("nullValue", String.Empty)
col =
'Ex/ii. поле содержит значение NULL, пусть класс возвращает О col.ExtendedProperties.Add("nullValue", "0")
ds.WriteXnlScheni8( "С: \ПутДК\Новоиу .X50")
Visual C# .NET
DataSet ds = new QataSstO; ds.DataSetName = "NameForYourNewClass": DataTable tbl = ds. Tables. AddC'TableT);
DataColumn col;
//Задаем имя объекта DataRow со строгим контролем типов для объекта DataTable tbl.ExtendedProperties.Add("typedName", "HyTablelRow");
//Задаем имя свойства DataTable объекта DataSet
tbl.ExtendedProperties.AddC'typedPlural", "MyTablelRows");
col =
поле содержит значение NULL, пусть класс возвращает ¦col. ExtendedProperties. Add( "nullValue", "<Null>");
col =
поле содержит значение NULL, пусть класс ool.ExtendedProperties.Add("nullValue", String.Empty);
col = tbl.Columns.AddC'IntegerColumn", typeof(int));
поле содержит значение NULL, пусть класс возвращает О col.ExtendedPrope rties,Add("nullValue", "0");
ds. WriteXmlSchema("С:\\Путь\\К\\Новому.XSD")
ГЛАВА
Передача обновлений в базу данных
Веря в
недоступные твоему т-кимитс-'*, ты страдаешь. Быть суеверным — неправильный образ жизни.
Wonder)
^Хзля Спгш Ваидер, скорее всего, говорил
не о передаче обновлений в БД, при-
веденная цитата вполне релевантна к нашей теме. А ПОЛЕТ предоставляет программистам БД беспрецедентно мощную и гибкую подсистему передачи 1 n'iiii
лений. Тем не менее, судя по вопросам, на которые мне приходилось отвечать в различных группах новостей и на конференциях в период тестирования бета-версии .NET, я могу сказать, что лишь небольшая группа разработчиков действительно понимает, как эффективно использовать эти новые возможности.
Большинство встречавшихся мне фрагментов кода на ADO.NET генерируют логику обновления при помощи объекта CommandBuilder. В некоторых фрагментах есть предупреждение о необходимости генерировать собственную логику обновления, но практически нигде не объясняется, зачем это нужно и как это сделать.
Сколько раз вы интересовались у разработчиков, как работает их код, и те лишь пожимали плечами, улыбались и отвечали: «Он просто рапосзсi Именно это суеверие я хочу развеять в этой и следующей главах.
Примечание Я действительно видел службу технической поддержки, девизом которой был лозунг: *Он просто работает». Печально, но это так.
Чем глубже вы понимаете, как передавать обновления с помощью ADO.NET. тем проще вам генерировать собственную логику обновления и/или передавать обновления с использованием хранимых процедур. Я расскажу, как средствами объек-
ГЛАВА 0 Передача обновлений в базу данных
347
та h'niiiAtlaptei передавать отложенные изменения из объекта ікн'.ім'і в БД, а также о специальных утилитах, экономящих время и не ¦ ждзмзающнх отрицательно влияния на производительность и возможности управления.
Если вы последовательно читали материал книги, то уже умеете создавать объекты DataSet со строгим контролем типов и без такового для хранения данных, возвращаемых объектами DaitiAdaph-r. Кроме того, вы должны уметь изменять содержимое объектов DataSet. Эта глава познакомит вас с основами передачи изменений из объектов DataSet в БД при помощи объектов DataAdapter.
Рассмотрим заказ из БД Nortrewind. На рис. 10-1 показан запрос, выполненный в SQL Server Query Analyzer для получения сведений об этом заказе. Предположим, клиент звонит и хочет изменить заказ. Сыр тоф;, не продается, но бутылки острого соуса прямо-таки разлетаются с ~;слоз:, и люди постоянно спрашивают чай.
Предыдущая << 1 .. 147 148 149 150 151 152 < 153 > 154 155 156 157 158 159 .. 260 >> Следующая
Реклама
Авторские права © 2009 AdsNet. Все права защищены.
Rambler's Top100