Опубликован: 05.08.2007 | Уровень: специалист | Доступ: платный
Лекция 11:

Типизированный объект DataSet. Чтение и запись XML-документов

Загрузка XML-документов и XSD-схем в обычный объект DataSet

Рассмотрим теперь загрузку XML-документов в обычный объект DataSet. Скопируйте папку приложения TypedDataSetReadXML и переименуйте ее в "UntypedDataSetReadXML". Открываем проект, в окне Solution Explorer щелкаем правой кнопкой на объекте XSDTour_bd.xsd и выбираем пункт меню "Delete". В классе формы удаляем соответствующее объявление:

private TypedDataSet.XSDTour_bd dsTour;

Там же создаем экзмепляр dsTour:

DataSet dsTour;

Далее нам предстоит cделать небольшие исправления в коде. В обработчике пункта меню "Заполнить" инициализируем dsTour и изменяем очередность вызова метода ClearForm:

private void mnuFill_Click(object sender, System.EventArgs e)
{
	...
ClearForm();			
dsTour = new DataSet();
conn.Open();
dataAdapter.Fill(dsTour);
dataAdapter2.Fill(dsTour);
dataAdapter3.Fill(dsTour);
dataAdapter4.Fill(dsTour);
conn.Close();
			
dataGrid1.DataSource = dsTour;
StructureDataSet();
}

Обработчики пунктов меню "Auto" и "Открыть схему" будут выглядеть так:

private void mnuAuto_Click(object sender, System.EventArgs e)
{
	dsTour = new DataSet();
	ClearForm();
	...
}
private void mnuReadXmlSchema_Click(object sender, System.EventArgs e)
{
	dsTour = new DataSet();
	ClearForm();
	...			
}

Наконец, в самом методе ClearForm добавляем проверку на наличие таблиц в объекте dsTour:

private void ClearForm()
{
	if (dataGrid1.DataSource!=null)
	{
		dsTour.Clear();
	}
	dataGrid1.DataSource = null;
	richTextBox1.Text = "";
}

Запускаем приложение. Теперь объект DataSet содержит текущую структуру документа XMLEasy.xml (рис. 11.29, А) и документа XMLTourFull.xml (рис. 11.29, Б), схему XMLTourFull.xsx (при выборе в качестве типа файлов All Files) (рис. 11.29, В) и конечно, структуру таблиц, загруженных из базы (рис. 11.29, Г). В последнем случае обратите внимание на то, что объект DataSet сам по себе не получает из базы сведений о связях между таблицами.

 Приложение UntypedDataSetReadXML. А - загрузка документа XMLEasy.xml, Б - документ XMLTourFull.xml, В - схема XMLTourFull.xsx, Г - данные из базы

увеличить изображение
Рис. 11.29. Приложение UntypedDataSetReadXML. А - загрузка документа XMLEasy.xml, Б - документ XMLTourFull.xml, В - схема XMLTourFull.xsx, Г - данные из базы

В программном обеспечении к курсу вы найдете приложение Untyped DataSetReadXML (Code\Glava5\ UntypedDataSetReadXML).

Александра Тимофеева
Александра Тимофеева
Украина, Киев
Bakke Aleksander
Bakke Aleksander
Россия, Mуниципальный округ N 4