LibKing » Книги » comp-programming » Симон Робинсон - C# для профессионалов. Том II

Симон Робинсон - C# для профессионалов. Том II

Тут можно читать онлайн Симон Робинсон - C# для профессионалов. Том II - бесплатно полную версию книги (целиком). Жанр: comp-programming, издательство Лори, год 2003. Здесь Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте LibKing.Ru (ЛибКинг) или прочесть краткое содержание, предисловие (аннотацию), описание и ознакомиться с отзывами (комментариями) о произведении.
Симон Робинсон - C# для профессионалов. Том II
  • Название:
    C# для профессионалов. Том II
  • Автор:
  • Жанр:
  • Издательство:
    Лори
  • Год:
    2003
  • ISBN:
    5-85582-187-0
  • Рейтинг:
    4.87/5. Голосов: 81
  • Избранное:
    Добавить в избранное
  • Ваша оценка:

Симон Робинсон - C# для профессионалов. Том II краткое содержание

C# для профессионалов. Том II - описание и краткое содержание, автор Симон Робинсон, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru
C# для профессионалов

Платформа .NET предлагает новую среду, в которой можно разрабатывать практически любое приложение, действующее под управлением Windows, а язык C# — новый язык программирования, созданный специально для работы с .NET.

В этой книге представлены все основные концепции языка C# и платформы .NET. Полностью описывается синтаксис C#, приводятся примеры построения различных типов приложений с использованием C# — создание приложений и служб Windows, приложений и служб WWW при помощи ASP.NET, а также элементов управления Windows и WWW Рассматриваются общие библиотеки классов .NET, в частности, доступ к данным с помощью ADO.NET и доступ к службе Active Directory с применением классов DirectoryServices.

Для кого предназначена эта книга

Эта книга предназначена для опытных разработчиков, возможно, имеющих опыт программирования на VB, C++ или Java, но не использовавших ранее в своей работе язык C# и платформу .NET. Программистам, применяющим современные технологии, книга даст полное представление о том, как писать программы на C# для платформы .NET.

Основные темы книги

• Все особенности языка C#

• C# и объектно-ориентированное программирование

• Приложения и службы Windows

• Создание web-страниц и web-служб с помощью ASP NET

• Сборки .NET

• Доступ к данным при помощи ADO NET

• Создание распределённых приложений с помощью NET Remoting

• Интеграция с COM, COM+ и службой Active Directory

C# для профессионалов. Том II - читать онлайн бесплатно полную версию (весь текст целиком)

C# для профессионалов. Том II - читать книгу онлайн бесплатно, автор Симон Робинсон
Тёмная тема

Шрифт:

Сбросить

Интервал:

Закладка:

Сделать

private void button1_Click(object sender, System.EventArgs e) {

// создать множество данных DataSet

DataSet ds=new DataSet("XMLProducts");

// соединиться с базой данных northwind и

//выбрать все строки из таблицы продуктов

//убедитесь, что имя пользователя соответствует версии SqlServer

SqlConnection conn=

new SqlConnection(@"server=GLYNNJ_CS\NetSDK;uid=sa;pwd=;database=northwind");

SqlDataAdapter da=new SqDataAdapter("select * from products", conn);

После создания SqlDataAdapter, daи DataSet, dsсоздаются экземпляры объекта MemoryStream, объекта StreamReaderи объекта StreamWriter. Объекты StreamReaderи StreamWriterбудут применять MemoryStreamдля перемещения XML:

MemoryStream memStrm=new MemoryStream();

StreamReader strmRead=new StreamReader(memStrm);

StreamWriter strmWrite=new StreamWriter(memStrm);

Мы будем использовать MemoryStream, поэтому ничего на диск записываться не будет, однако мы сможем применять любые объекты на основе класса Stream, такие как FileStream. Затем мы заполним DataSetи свяжем его с DataGrid. Данные из DataSetбудут выводиться теперь в DataGrid:

da.Fill(ds, "products");

// загрузка данных в DataGrid

dataGrid1.DataSource=ds;

dataGrid1.DataMember="products";

На следующем шаге генерируется XML. Вызывается метод WriteXmlиз класса DataSet. WriteXmlгенерирует документ XML. Существуют две перегружаемые версии WriteXml, одна получает строку с путем доступа и именем файла, а в другом методе добавлен параметр режима mode. Этот modeявляется перечислением XmlWriteMode. Возможными значениями являются DiffGram, IgnoreSchema, и WriteSchema. Обсудим DiffGramпозже в этом разделе. IgnoreSchemaиспользуется, если нежелательно, чтобы WriteXmlзаписывал подставляемую ( inline) схему в файл XML; используйте параметр WriteSchema, если это желательно. Чтобы получить именно схему, вызывается WriteXmlSchema. Этот метод имеет четыре перегружаемые версии. Одна получает строку, содержащую путь доступа и имя файла, куда записывается документ XML. Вторая версия использует объект, который основывается на классе XmlWriter. Третья версия использует объект, который основывается на классе TextWriter. Четвертая версия используется в примере, параметр в этом случае является производным от класса Stream:

ds.WriteXml(strmWrite, XmlWriteMode.IgnoreSchema);

memStrm.Seek(0, SeekOrigin, Begin);

// читаем из потока в памяти в объект XmlDocument

doc.load(strmRead);

// получить все элементы продуктов

XmlNodeList nodeLst=doc.GetElementsByTagName("ProductName");

// загрузить их в окно списка

foreach(XmlNode nd in nodeLst) listBox1.Items.Add(nd.InnerText);

}

private void listBox1_SelectedIndexChanged(object sender, System.EventArgs e) {

// при щелчке в окне списка

// появляется окно сообщения с ценой изделия

string srch=

"XmlProducts/products[ProductName= " + '"' + listBox1.SelectedItem.ToString() + "]";

XmlNode foundNode=doc.SelectSingleNode(srch);

if (foundNode!=null)

MessageBox.Show(foundNode.SelectSingleNode("UnitPrice").InnerText);

else MessageBox.Show("Not found");

}

На следующем экране можно видеть данные в списке, а также в таблице данных:

Если желательно сохранить документ XML на диске то нужно сделать примерно - фото 11

Если желательно сохранить документ XML на диске, то нужно сделать примерно следующее:

string file = "с:\\test\\product.xml";

ds.WriteXml(file);

Это даст нам правильно сформированный документ XML на диске, который можно прочитать посредством другого потока, с помощью DataSet, или может использоваться другим приложением или web-сайтом. Так как никакого параметра XmlModeне определено, этот документ XmlDocumentбудет содержать схему. В нашем примере в качестве параметра для метода XmlDocument.Loadиспользуется поток.

Когда XmlDocumentподготовлен, мы загружаем listboxс помощью того же объекта XPath, который использовался раньше. Если посмотреть внимательно, то можно заметить, что слегка изменено событие listBox1_SelectedIndexChanged. Вместо вывода InnerTextэлемента, выполняется другой поиск XPathс помощью SelectSingleNode, чтобы получить элемент UnitPrice. Каждый раз при щелчке на продукте в listboxбудет появляться MessageBoxдля UnitPrise. Теперь у нас есть два представления данных, но более важно то, что имеется возможность манипулировать данными с помощью двух различных моделей. Можно использовать пространство имен Data для данных или пространство имен XML через данные. Такой подход ведет к очень гибким конструкциям в приложениях, так как теперь при программировании нет жесткой связи только с одной объектной моделью. Таким образом, мы имеем несколько представлений одних и тех же данных и несколько способов доступа к данным.

Следующий пример будет упрощать процесс, удаляя три потока и используя некоторые возможности ADO, встроенные в пространство имен XML. Нам понадобится изменить строку кода на уровне модуля:

private XmlDocument doc=new XmlDocument();

на:

private XmlDataDocument doc;

Это нужно сделать, так как мы не собираемся использовать XmlDataDocument. Вот код, который можно найти в папке ADOSample2:

private void button1_Click(object sender, System.EventArgs e) {

// создать множество данных (DataSet)

DataSet ds=new DataSet("XMLProducts");

// соединиться с базой данных northwind и

//выбрать все строки из таблицы products

//выполнить изменения в строке подключения с учетом имени пользователя и имени сервера

SqlConnection conn=

new SqlConnection(@"server=GLYNNJ_CS\NetSDK;uid=sa;pwd=;database=northwind");

SqlDataAdapter da=new SqlDataAdapter("select * from products", conn);

// заполнить множество данных

da.Fill(ds, "products");

// загрузить данные в сетку

dataGrid1.DataSource=ds;

dataGrid1.DataMember="products";

doc=new XmlDataDocument(ds);

// извлечь все элементы продуктов

XmlNodeList nodeLst=doc.GetElementsByTagName("ProductName");

// загрузить их в окно списка

// здесь используется цикл for

for(int ctr=0; ctr

}

Как можно видеть, код для загрузки DataSetв документ XML был упрощен. Вместо использования класса XmlDocument, используется класс XmlDataDocument. Этот класс был создан специально для использования данных с объектом DataSet.

XmlDataDocumentбазируется на классе XmlDocument, поэтому он имеет всю функциональность класса XmlDocument. Одним из основных отличий является перегруженный конструктор для XmlDataDocument. Отметим строку кода, где создается экземпляр XmlDataDocument:

XmlDataDocument doc=new XmlDataDocument(ds);

Он передает в качестве параметра созданный объект DataSet, ds. Документ XML создается из множества данных, поэтому не требуется использование метода Load. Существует также свойство DataSet, которое может задаваться с помощью текущего свойства DataSet. Фактически, если создается новый объект XmlDataDocumentбез передачи DataSetв качестве параметра, то он содержит объект DataSetс именем NewDataSet, который не имеет DataTablesв коллекции таблиц. Существует также свойство DataSet, которое можно установить после создания объекта на основе XmlDataDocument. Если после вызова DataSet.Fillдобавляется следующая строка кода:

Читать дальше
Тёмная тема

Шрифт:

Сбросить

Интервал:

Закладка:

Сделать


Симон Робинсон читать все книги автора по порядку

Симон Робинсон - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




C# для профессионалов. Том II отзывы


Отзывы читателей о книге C# для профессионалов. Том II, автор: Симон Робинсон. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
Большинство книг на сайте опубликовано легально на правах партнёрской программы ЛитРес. Если Ваша книга была опубликована с нарушениями авторских прав, пожалуйста, направьте Вашу жалобу на PGEgaHJlZj0ibWFpbHRvOmFidXNlQGxpYmtpbmcucnUiIHJlbD0ibm9mb2xsb3ciPmFidXNlQGxpYmtpbmcucnU8L2E+ или заполните форму обратной связи.
img img img img img