В Windows Forms табличные данные удобно выводить с помощью элемента управления DataGridView. В статье покажем, как это сделать на примере таблицы из базы данных и языка программирования C#.
Исходные данные для DataGridView
Имеется таблица в базе данных Microsoft SQL Server с информацией о факультетах университета.
Эти данные будем выводить в элемент DataGridView, расположенный на Windows Forms.
Программа с DataGridView
Создадим новый проект Windows Forms на Visual C# в Visual Studio. На форме расположим элемент управления DataGridView — для этого перетащите его с «Панели элементов» на макет окна.
Добавим в DataGridView три столбца под три соответствующих колонки из таблицы БД с помощью кнопки «Правка столбцов».
Для наглядности назовём их так же, как называются поля в таблице базы данных.
Переходим к написанию кода. Вся функциональность по чтению данных из БД и их последующему выводу в DataGridView реализована в методе LoadData().
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
public partial class Form1 : Form { public Form1() { InitializeComponent(); LoadData(); } private void LoadData() { string connectString = "Data Source=.\\SQLEXPRESS;Initial Catalog=LSTU_Schedule_autumn20172018;" + "Integrated Security=true;"; SqlConnection myConnection = new SqlConnection(connectString); myConnection.Open(); string query = "SELECT * FROM Faculty ORDER BY fac_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) dataGridView1.Rows.Add(s); } } |
Разберём подробно код на C#.
Объявление переменной со строкой подключения к базе данных:
1 2 |
string connectString = "Data Source=.\\SQLEXPRESS;Initial Catalog=LSTU_Schedule_autumn20172018;" + "Integrated Security=true;"; |
Создание объекта для подключения к БД:
1 |
SqlConnection myConnection = new SqlConnection(connectString); |
Соединение с БД:
1 |
myConnection.Open(); |
Запрос на получение данных из таблицы с факультетами:
1 |
string query = "SELECT * FROM Faculty ORDER BY fac_id"; |
Создание объекта, выполняющего запрос к БД:
1 |
SqlCommand command = new SqlCommand(query, myConnection); |
Получение объекта для чтения данных из БД, содержащих несколько строк и столбцов:
1 |
SqlDataReader reader = command.ExecuteReader(); |
Создание списка List для хранения полученных данных. Каждая строка будет представлена элементом списка, а столбец — элементом строкового массива string[]:
1 |
List<string[]> data = new List<string[]>(); |
В цикле построчно читаем данные строки (каждого её столбца), предварительно создав новый элемент списка List:
1 2 3 4 5 6 7 8 |
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(); } |
Закрываем SqlDataReader:
1 |
reader.Close(); |
Разрываем соединение с базой данных:
1 |
myConnection.Close(); |
В цикле foreach добавляем новые строки в DataGridView с помощью метода Add. Элементами строки являются столбцы, заполняемые из строкового массива, содержащегося в конкретном элементе списка List:
1 2 |
foreach (string[] s in data) dataGridView1.Rows.Add(s); |
Запустим программу и посмотрим её в работе.
Если у Вас остались какие-либо вопросы, то Вы можете посмотреть видеоурок, в котором мы подробно разбираем создание данной программы, выводящей данные из БД в DataGridView с помощью языка C#:
Поделиться в соц. сетях:
Спасибо, все работает. Ваши уроки — реальная помощь…
Благодарю!
А как можно считать только одну строчку из DataGridView . По двойному клику??