Вивід таблиці бази даних Microsoft Access в компоненті dataGridView
Зміст
- Умова задачі
- Розв’язок
- Зв’язані теми
Пошук на інших ресурсах:
Умова задачі
Нехай маємо базу даних, створену в програмі Microsoft Access.
Ім’я файлу бази даних “mydb.mdb“. Файл розміщується на диску за таким шляхом:
C:\Programs\C_Sharp\Train_01\WindowsFormsApplication1\mydb.mdb
База даних має декілька таблиць, одна з яких має назву “Order“.
Задача полягає в тому, щоб з допомогою засобів мови C# здійснити підключення до бази даних та вивести таблицю з іменем “Order” на форму.
Додаток реалізувати як Windows Forms Application.
Загальний вигляд таблиць бази даних та зв’язків між ними представлений на рис. 1.
Рис. 1. Зв’язки між таблицями бази даних
⇑
Розв’язок
1. Створення додатку за шаблоном Windows Forms Application.
Завантажити Microsoft Visual Studio. Створити додаток типу Windows Forms Application. Приклад створення нового додатку детально описаний тут.
Вихідний код форми додатку має вигляд:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
}
}
Як бачимо, у просторі імен WindowsFormsApplication1 є лише конструктор форми, в якому викликається метод InitializeComponent().
⇑
2. Підключення до бази даних. Читання рядка підключення Connection String.
Здійснюємо підключення бази даних MS Access до нашого додатку.
У результаті отримуємо рядок підключення до бази даних (Connection String). Цей рядок буде в подальшому використаний в нашій програмі.
Щоб отримати коректний текст рядка підключення до бази даних треба виділити назву бази даних в панелі Server Explorer (mydb.mdb) і у вікні “Properties” прочитати (скопіювати) значення властивості “Connection String” (рис. 2, червоне обведення).
Рис. 2. Читання властивості Connection String
⇑
3. Розміщення компонента типу dataGridView.
Виводимо на форму компонент dataGridView, що представляє собою компонент-таблицю, в якій буде виводитись наша таблиця “Order” з бази даних. Отримуємо змінну з назвою dataGridView1.
Рис. 3. Компонент “DataGridView” на панелі Toolbox
Рис. 4. Компонент dataGridView на основній формі
⇑
4. Редагування програмного коду.
4.1. Додавання змінних SQL-запиту та рядка підключення до БД.
Активуємо текст модуля Form1.cs (основна форма). В програмний код форми вводимо додаткові змінні CmdText і ConnString.
Змінна CmdText містить текст SQL-запиту для виведення усіх записів таблиці “Order“. Змінна ConnString представляє собою рядок підключення до бази даних (див. п.2). Загальний вигляд коду класу форми наступний:
public partial class Form1 : Form
{
public string CmdText = "SELECT * FROM [Order]";
public string ConnString = "Provider=Microsoft.Jet.OLEDB.4.0;DataSource=C:\\Programs\\C_Sharp\\WindowsFormsApplication1\\mydb.mdb";
public Form1()
{
InitializeComponent();
}
}
⇑
4.2. Створення об’єкту типу OleDbDataAdapter.
В конструктор форми після виклику InitializeComponent(); додаємо рядок створення об’єкту типу OleDbDataAdapter:
OleDbDataAdapter dA = new OleDbDataAdapter(CmdText, ConnString);
Об’єкт типу OleDbDataAdapter пересилає набори даних з викликаючого процесу і назад. Адаптери даних містять набір з чотирьох внутрішніх об’єктів команд. Це команди читання, вставки, зміни і видалення інформації. Як видно з програмного коду, конструктор об’єкту отримує вхідними параметрами рядок запиту на мові SQL та рядок підключення до бази даних. Отже, об’єкт адаптеру даних уже зв’язаний з нашою базою даних.
⇑
4.3. Створення об’єкту набору даних DataSet.
Після створення адаптера даних (OleDbDataAdapter) викликаємо створюємо об’єкт типу DataSet (набір даних):
DataSet ds = new DataSet();
Набір даних представляє собою свого роду проміжний буфер для даних, що можуть відображатись. Набір даних представляє зручний механізм читання й оновлення даних й інкапсулює множину таблиць та зв’язків між ними.
⇑
4.4. Заповнення таблиці “Order” на основі SQL-запиту.
Наступна команда – це заповнення набору даних (змінна ds) значеннями записів з бази даних на основі SQL-запиту, що міститься в адаптері даних dA з допомогою методу Fill():
dA.Fill(ds, "[Order]");
⇑
4.5. Візуалізація даних в dataGridView1.
На даний момент дані з таблиці “Order” зчитані в об’єкті ds (типу DataSet), що представляє собою набір даних.
Для їх відображення необхідно щоб властивість DataSource компонента dataGridView1 посилалась на першу таблицю (у нас одна таблиця) набору даних ds. Програмний код має наступний вигляд:
dataGridView1.DataSource = ds.Tables[0].DefaultView;
Після цього дані з таблиці “Order” відобразяться на формі (рис. 5).
⇑
5. Весь програмний код.
Загальний лістинг класу основної форми матиме наступний вигляд:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.OleDb;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public string CmdText =
"SELECT * FROM [Order]";
public string ConnString =
"Provider=Microsoft.Jet.OLEDB.4.0;DataSource=C:\\Programs\\C_Sharp\\Train_12\\WindowsFormsApplication1\\mydb.mdb";
public Form1()
{
InitializeComponent();
OleDbDataAdapter dataAdapter = new OleDbDataAdapter(CmdText, ConnString);
// створення об'єкту типу DataSet
DataSet ds = new DataSet();
// заповнення таблиці "Order"
dataAdapter.Fill(ds, "[Order]");
dataGridView1.DataSource = ds.Tables[0].DefaultView;
}
}
}
Рис. 5. Результат виконання програми
⇑
6. Схема взаємодії.
Схема взаємодії між об’єктами представлена на рис. 6.
Рис. 6. Схема взаємодії між об’єктами для доступу до бази даних
Таким чином можна виводити на форму будь-яку таблицю бази даних. Умови виведення даних з бази даних задаються в рядку SQL-запиту в змінній CmdText.
Наприклад, якщо в CmdText задати такий рядок:
CmdText = "SELECT * FROM [Order] WHERE [NameOfSender] LIKE 'І%'";
то в результаті з бази даних будуть виведені ті записи, які починаються на букву ‘І‘ (Іванов, Іващенко і т.д.).
⇑
Зв’язані теми
- Підключення бази даних Microsoft Access в Microsoft Visual Studio.
- Розробка програми автоматизації роботи диспетчера кас автовокзалу (курсова робота).
- Перевід бази даних Microsoft Access у формат Microsoft SQL Server.
- Приклад розробки програми демонстрації основних операцій над даними таблиці бази даних Microsoft SQL Server.
⇑