Хелпикс

Главная

Контакты

Случайная статья





Лабораторная работа 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.  Выведем все данные из этой таблицы в DataGridView. Для этого в DataGridView1 левой кнопкой мыши кликнем по треугольнику в правом верхнем углу компонента, выберем «Добавить столбец» и создадим три столбца с именами otd_id, otd_name_full, otd_name_short

5. Теперь приступим к коду программы, для этого нажмем F7 или в Обозревателе объектов щелкнем правой кнопкой на Form1.cs и выберем в контекстном меню «Перейти к коду». Напишем в классе Form1 дополнительный метод, который будет загружать данные из БД и выводить их в DataGridView. Назовем этот метод LoadData.

И сразу вызовем его в конструкторе класса, после инициализации всех компонентов формы.

Сначала напишем строку подключения к БД.
string connectString = "Data Source=ZEMAPC\\SQLEXPRES;Initial Catalog=VUS; Integrated Security=true;";
, где VUS – имя БД к которой будет выполняться подключение,
Integrated Security=true – параметр показывает, что соединение защищенное.

6. Создадим экземпляр класса для подключения к БД – SqlConnection, в конструктор передадим ему строку подключения к БД.
SqlConnecttion myConnection = new SqlConnecttion(connectString);

 

Импортируем пространство имен using System.Data.SqlClient; - для класса SqlConnecttion.(допишем в начале программы, где перечислены используемые в приложении пространства имен.)
После подключения объекта класса, откроем соединение
myConnection.Open();

Теперь напишем запрос, который будет получать данные из таблицы БД Facultet и запишем его в строковую переменную.
string query = "SELECT * FROM Otdel ORDER BY otd_id";
Создадим экземпляр класса SqlCommand и передадим ему параметры – запрос и объект, который устанавливает соединение с БД.

SqlCommand command = new SqlCommand(query, myConnection);

 

Создадим экземпляр класса SqlDataReader. С помощью него будем читать данные из БД, его используют тогда, когда нужно прочитать несколько строк или столбцов. C помощью ExecuteReader() строится SqlDataReader:
SqlDataReader reader = command.ExecuteReader();

 

Создадим список 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. Запустите программу, проверьте правильность работы.

 



  

© helpiks.su При использовании или копировании материалов прямая ссылка на сайт обязательна.