![]()
|
|||
Лабораторная работа 1. Вывод таблицы с данными из БД Microsoft SQL Server в элемент управления DataGridView на Windows Forms при помощи языка программирования C#.Лабораторная работа 1. Вывод таблицы с данными из БД Microsoft SQL Server в элемент управления DataGridView на Windows Forms при помощи языка программирования C#. В лабораторной работе рассматривается вывод таблицы с данными из БД Microsoft SQL Server в элемент управления DataGridView на Windows Forms при помощи языка программирования C#. 1. Создадим в MS Visual Studio новый проект, выбрав последовательно Файл – Создать – Проект – в открывшимся окне выбрать «Приложение Windows Forms», назовем его OutputToDataGridView. 2. На созданную форму добавим DataGridView. Переименуем форму (свойство Text) в «Вывод данных в DataGridView – VSCODE.RU». 3. Откроем Пуск - «Среда SQL Server Management Studio» и создадим в БД VUS таблицу Otdel. Обновим таблицы, выбрав в контекстном меню Таблицы - Обновить. Затем для того, чтобы заполнить таблицу значениями, выберем из контекстного меню таблицы Otdel – Выбрать первые 100 строк. Заполним таблицу следующими значениями: 4. 5. Теперь приступим к коду программы, для этого нажмем F7 или в Обозревателе объектов щелкнем правой кнопкой на Form1.cs и выберем в контекстном меню «Перейти к коду». Напишем в классе Form1 дополнительный метод, который будет загружать данные из БД и выводить их в DataGridView. Назовем этот метод LoadData. И сразу вызовем его в конструкторе класса, после инициализации всех компонентов формы. Сначала напишем строку подключения к БД. 6. Создадим экземпляр класса для подключения к БД – SqlConnection, в конструктор передадим ему строку подключения к БД.
Импортируем пространство имен using System.Data.SqlClient; - для класса SqlConnecttion.(допишем в начале программы, где перечислены используемые в приложении пространства имен.) Теперь напишем запрос, который будет получать данные из таблицы БД Facultet и запишем его в строковую переменную. SqlCommand command = new SqlCommand(query, myConnection);
Создадим экземпляр класса SqlDataReader. С помощью него будем читать данные из БД, его используют тогда, когда нужно прочитать несколько строк или столбцов. C помощью ExecuteReader() строится SqlDataReader:
Создадим список List, элементами которого будет строковый массив data. В этот список будем читать данные из БД, каждая строка будет представлена строковым массивом из трех элементов, потому что у нас три столбца. List<string[]> data = new List<string[]>();
Создадим цикл while, аргументом цикла будет метод read объекта reader, этот метод читает следующую строку данных, которые должны быть возвращены запросом и этот метод так же возвращает булевое значение True – если данные еще имеются и false – если данные уже прочитаны. Поэтому удобно использовать цикл while, для того, чтобы прочитать все строки, возвращаемые по текущему запросу. На каждой итерации цикла мы будем добавлять новую строку в список, для этого мы вызовем у Data метод Add и добавим новый объект строкового массива из трех элементов. data.Add(new string[3]);
Теперь нужно прочитать все три столбца на данной итерации. Для этого в самый последний [data.Count-1] элемент списка Data будем заносить данные. Таки образом получили массив из трех элементов и в первый элемент [0] занесем значение первого столбца. data[data.Count - 1][0] = reader[0].ToString();
Аналогично прочитаем значения 2 и 3 столбца из строки на данной итерации цикла.
7. Закроем объект Reader с помощью метода Close. reader.Close(); 8. Разорвем соединение с БД. myConnection.Close(); 9. Выведем полученные данные в DataGridView. Для этого воспользуемся циклом foreach, на кжд итерации цикла будем работать с одним элементом из списка data, список представляет собой строковый массив из 3-х элементов. Этот массив из data нужно добаить в DataGridView и заполнить три колонки. Для заполнения DataGridView обратимся к объекту DataGridView, в нем выбрать параметр Rows(строки) и вызвать у него метод Add (добавить новую строку). И в качестве аргумента нужно передать строковый массив: dataGridView1.Rows.Add(s) 10. Полный код программы: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using System.Data.SqlClient;
namespace Output { public partial class Form1 : Form { public Form1() { InitializeComponent(); LoadData(); } string connectString = "Data Source=ZEMAPC\\SQLEXPRES;Initial Catalog=VUS;Integrated Security=True"; private void LoadData() { SqlConnection myConnection = new SqlConnection(connectString);//Создадим экземпляр класса для подключения к БД
myConnection.Open();//откроем соединение
string query = "SELECT * FROM Otdel ORDER BY otd_id ";
SqlCommand command = new SqlCommand(query, myConnection);
SqlDataReader reader = command.ExecuteReader();
List<string[]> data = new List<string[]>();
while (reader.Read()) { data.Add(new string[3]);//создадим объект-строку
data[data.Count - 1][0] = reader[0].ToString(); data[data.Count - 1][1] = reader[1].ToString(); data[data.Count - 1][2] = reader[2].ToString(); } reader.Close();// закроем объект
myConnection.Close();//разорвем соединение с БД
foreach (string[] s in data)// на кжд итерации цикла работаем с одним элементом из списка data dataGridView1.Rows.Add(s); } }
11. Запустите программу, проверьте правильность работы.
|
|||
|