Главная

Популярная публикация

Научная публикация

Случайная публикация

Обратная связь

ТОР 5 статей:

Методические подходы к анализу финансового состояния предприятия

Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века

Ценовые и неценовые факторы

Характеристика шлифовальных кругов и ее маркировка

Служебные части речи. Предлог. Союз. Частицы

КАТЕГОРИИ:






Шаг 4. Перемещение данных из SQL-сервера на объект DataSet




1. Для хранения результатов SQL-запроса в локальной базе данных создадим объект класса DataSet:

DataSet myDataSet = new DataSet();

 

2. Перемещение данных из SQL-сервера в объект класса DataSet. Для этого вызовем метод Fill() объекта SqlDataAdapter.

mySqlDataAdapter. Fill (myDataSet, "PersonData");

 

Заметим, что здесь имя "PersonData" является именем локальной базы данных, которая содержит данных из таблицу Person.

3. Объект DataSet имеет свойство Tables типа коллекция. Через это свойство можно имеет доступ к таблицам базы данных.

DataTable myDataTable = myDataSet.Tables["PersonData"];

 

Шаг 5. Вывести значений полей каждой записи

Для вывода значений полей каждой записи следует использовать объект DataRow. В классе DataTable определено свойство Rows, которое возвращает коллекцию объектов DataRow. Свойство Rows можно использовать для перебора всех объектов DataRow в цикле foreach. Например:

foreach (DataRow personRow in Persons.Rows)

{

listBox1.Items.Add(personRow["Name"]);

listBox2.Items.Add(personRow["Oklad"]);

listBox3.Items.Add(personRow["BirthDay"]);

}

Как видим, имя каждого поля передается объекту DataRow в квадратных скобках, а затем объект DataRow возвращает значение этого поля.

 

Код приложения

Мы рассмотрели все этапы соединения с базой данных, которая находится в SQL-сервере. Здесь приведем код обработчика события Click для кнопки:

 

using System;

using System.Data;

using System.Data.SqlClient;

..................

 

private void button1_Click(object sender, EventArgs e)

{

//Создание связи с базой данных

string ConnectionString = "Data Source=(local)\\SQLEXPRESS;" +

"Initial Catalog=MyBase;" +

"Integrated Security=True";

 

SqlConnection mySqlConnection =

new SqlConnection(ConnectionString);

mySqlConnection.Open();

 

//Создание SQL-команды

string selectString = "SELECT Name, Post, Oklad FROM Person";

SqlCommand mySqlCommand = mySqlConnection.CreateCommand();

mySqlCommand.CommandText = selectString;

 

//Закрепление SQL-адаптеру объекта команды

SqlDataAdapter mySqlDataAdapter = new SqlDataAdapter();

mySqlDataAdapter.SelectCommand = mySqlCommand;

 

//Определение набора данных dataSet и заполнение его

DataSet myDataSet = new DataSet();

 

mySqlDataAdapter.Fill(myDataSet, "Person");

DataTable Person = myDataSet.Tables["Person"];

 

// Вывод данных на экран

foreach (DataRow personRow in Person.Rows)

{

listBox1.Items.Add(personRow["Name"]);

listBox2.Items.Add(personRow["Oklad"]);

listBox3.Items.Add(personRow["BirthDay"]);

}

 

// Выход из приложения

mySqlConnection.Close();

}

 

 

Запустите приложение на выполнение. Как видно, на полях ListBox появятся фамилии работников, их должность и оклад.

 

Ниже схематично покажем взаимосвязь между классами, которые предназначены для соединения и вывода данных таблицы.

 

Взаимосвязь классов, которые предназначены для вывода данных локальной базы данных на форме достаточно прост:

1. Объект класса DataSet имеет коллекцию Tables, откуда по названию таблицы можно получить доступ к таблице.

2. Объект класса DataTable имеет коллекцию Rows – записей таблицы. С помощью оператора foreach можно пробежаться по всем записям таблицы.

3. Для обращения к полю выбранной записи используем имя поля.






Не нашли, что искали? Воспользуйтесь поиском:

vikidalka.ru - 2015-2024 год. Все права принадлежат их авторам! Нарушение авторских прав | Нарушение персональных данных