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

Свойства и методы объекта Command

< Лекция 5 || Лекция 6: 123456 || Лекция 7 >

Применять метод ExecuteScalar объекта Command в Windows-приложениях очень легко - достаточно указать элемент управления (текстовое поле, надпись) для вывода одиночного значения.

Рассмотрим теперь метод ExecuteReader. Одна из главных задач при использовании этого метода - разместить возвращаемый набор данных в элементе управления на форме. Создайте новое приложение и назовите его "ExamWinExecuteReader". Перетаскиваем на форму элемент ListBox, его свойству Dock устанавливаем значение Bottom. Добавляем элемент Splitter, свойству Dock также устанавливаем значение Bottom. Наконец, перетаскиваем элемент ListView, свойству Dock устанавливаем значение Fill. Нам нужно настроить внешний вид элемента ListView: в окне Properties в поле свойства Columns нажимаем на кнопку(...) (рис. 6.26). В редакторе "Column Header Collection Editor" добавляем следующие четыре элемента:

Name Text
chTouristID Код туриста
Name Text
chFamily Фамилия
Name Text
chFirstName Имя
Name Text
chMiddleName Отчество
 Свойство Columns элемента ListView и редактор "ColumnHeader Collection Editor"

увеличить изображение
Рис. 6.26. Свойство Columns элемента ListView и редактор "ColumnHeader Collection Editor"

Для отображения созданных столбцов свойству View элемента устанавливаем значение "Details". Также включим режим отображения линий сетки - в свойстве GridLines выбираем значение "True". Сделанные изменения немедленно отобразятся на элементе.

Подключаем пространство имен для работы с базой:

using System.Data.SqlClient;

В классе формы создаем объекты conn и dataReader:

SqlConnection conn = null;
SqlDataReader dataReader;

В конструкторе формы добавляем код для заполнения данными элементов управления:

public Form1()
{
	InitializeComponent();
	try
	{
		conn = new SqlConnection();
		conn.ConnectionString = "integrated security=SSPI;data 
		 source=\".\"; persist security info=False; initial
		 catalog=BDTur_firm2";
		conn.Open();
		SqlCommand myCommand = conn.CreateCommand();
		myCommand.CommandText = "SELECT * FROM Туристы";
		dataReader = myCommand.ExecuteReader();
		while (dataReader.Read())
		{
			// Создаем переменные, получаем для них значения 
			//из объекта dataReader, используя метод GetТипДанных
			int TouristID = dataReader.GetInt32(0);
			string Family = dataReader.GetString(1);
			string FirstName = dataReader.GetString(2);
			string MiddleName = dataReader.GetString(3);
			//Выводим данные в элемент listBox1
			listBox1.Items.Add("Код туриста: " + TouristID+
			 " Фамилия: " + Family + " Имя: "+
			 FirstName + " Отчество: " + MiddleName);
			//Создаем экземпляр item класса ListViewItem 
			//для записи в него данных из dataReader
			ListViewItem item =
			 new ListViewItem(new string[]{Convert.ToString(dataReader[0]), 
			 Convert.ToString(dataReader[1]), Convert.ToString(dataReader[2]), 
			 Convert.ToString(dataReader[3])});
			listView1.Items.Add(item);				
		}
	}
	catch(Exception ex)
	{
		MessageBox.Show(ex.ToString());
	}
	finally
	{
		dataReader.Close();			
		conn.Close();
	}
}

Метод "GetТипДанных" позволяет приводить значения, возвращаемые объектом DataReader, если заранее известен их тип данных. Запускаем приложение. На форму выводятся данные в виде списка в элементе ListBox и в виде таблицы в элементе ListView (рис. 6.27):

 Приложение ExamWinExecuteReader

Рис. 6.27. Приложение ExamWinExecuteReader

В программном обеспечении к курсу вы найдете приложение ExamWin ExecuteReader (Code\Glava3\ ExamWinExecuteReader).

< Лекция 5 || Лекция 6: 123456 || Лекция 7 >
Александра Тимофеева
Александра Тимофеева
Украина, Киев
Bakke Aleksander
Bakke Aleksander
Россия, Mуниципальный округ N 4