Новости

C #. Практика. Висновок таблиці MS Access в DataGridView

  1. Висновок таблиці бази даних Microsoft Access в компоненті dataGridView зміст

Висновок таблиці бази даних Microsoft Access в компоненті dataGridView

зміст

Умова задачі

Нехай є база даних, створена в додатку Microsoft Access.

Файл бази даних "Mydb.mdb" . Файл розміщується на диску за наступним шляхом:

C: \ Programs \ C_Sharp \ WindowsFormsApplication1 \ mydb.mdb

База даних має кілька таблиць, одна з яких має назву "Order".

Завдання полягає в тому, щоб за допомогою засобів мови C # здійснити підключення до бази даних і вивести таблицю з ім'ям «Order» на форму.

Додаток реалізувати як Windows Forms Application.

Загальний вигляд таблиць і зв'язків між ними зображений на малюнку 1.

Загальний вигляд таблиць і зв'язків між ними зображений на малюнку 1

Мал. 1. Зв'язки між таблицями бази даних

виконання

1. Створення додатка.

Завантажуємо MS Visual Studio. Докладний приклад створення програми за шаблоном Windows Forms описується тут .

Вихідний код форми додатка має вигляд (файл Form1.cs):

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, червоне виділення). Слід врахувати, що слеш '\' в рядку на C # потрібно замінити на '\\' (два слеша) згідно синтаксису мови.

Мал. 2. Читання властивості Connection String

3. Розміщення компонента типу dataGridView.

Виносимо на форму компонент dataGridView (рис. 3), що представляє компонент-таблицю, в якій буде виведена наша таблиця "Order" з бази даних. Отримуємо об'єкт-змінну під назвою dataGridView.

Мал. 3. Компонент DataGridView на панелі Toolbox

Розміщення компонента dataGridView на формі зображено на малюнку 4.

Розміщення компонента dataGridView на формі зображено на малюнку 4

Мал. 4. Компонент dataGridView на головній формі програми

4. Зміна програмного коду.

4.1. Додавання змінних SQL-запит і рядки підключення до бази даних.

Активуємо текст модуля Form1.cs (головна форма) за допомогою Solution Explorer. У програмний код форми вводимо додаткові змінні 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. Підключення простору імен OleDb.

У Microsoft Visual Studio взаємодія з файлом даних Microsoft Access здійснюється за допомогою постачальника даних OLE DB або ODBC. Постачальник даних OLE DB забезпечує доступ до даних, що знаходяться в будь-якому сховище даних, якщо воно підтримує класичний протокол OLE DB на основі технології COM. Цей постачальник складається з типів, які визначені в просторі імен System.Data.OleDb.

У наступних кроках ми будемо використовувати методи з цього простору імен. Тому, спочатку файлу Form1.cs після рядка

using System.Windows.Forms;

потрібно додати рядок підключення простору імен OleDb:

using System.Data.OleDb;

4.3. Створення об'єкта типу OleDbDataAdapter.

У конструкторі форми після виклику

InitializeComponent ();

Додаємо рядок створення об'єкта типу OleDbDataAdapter:

OleDbDataAdapter dA = new OleDbDataAdapter (CmdText, ConnString);

Об'єкт типу OleDbDataAdapter організовує пересилання наборів даних з викликаються процесом. Адаптери даних містять набір з чотирьох внутрішніх об'єктів команд. Це команди читання, вставки, зміни та видалення інформації. Як видно з програмного коду, конструктор об'єкта отримує входять параметрами рядок запиту на мові SQL (змінна CmdText) і рядок підключення до бази даних (змінна ConnString). Таким чином, після виконання даного коду, об'єкт адаптера вже пов'язаний з нашою базою даних.

4.4. Створення об'єкта набору даних DataSet.

Після створення адаптера даних (OleDbDataAdapter) створюємо об'єкт типу DataSet (набір даних):

DataSet ds = new DataSet ();

Набір даних являє щось на зразок проміжного буфера для даних, які можуть відображатися. Набір даних являє зручний механізм читання та оновлення даних а також інкапсулює безліч таблиць і зв'язків між ними.

4.5. Заповнення таблиці "Order" на основі SQL-запит.

Наступна команда - це заповнення набору даних (змінна ds) значеннями записів з бази даних на основі SQL-запит, що міститься в адаптері даних dA за допомогою методу Fill ():

dA.Fill (ds, "[Order]");

4.6. Візуалізація даних в 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 \\ 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.

Мал. 5. Результат виконання програми

6. Схема взаємодії.

Загальна схема взаємодії між об'єктами зображена на рис. 6.

Мал. 6. Схема взаємодії між об'єктами для доступу до бази даних

Таким чином, можна виводити на форму будь-яку таблицю бази даних. Умови виведення даних з бази даних задаються в рядку SQL-запит в змінної CmdText.

Наприклад, якщо в CmdText задати наступний рядок:

CmdText = "SELECT * FROM [Order] WHERE [NameOfSender] LIKE 'І%'";

то в результаті з бази даних будуть вилучатись записи, що починаються з символу 'I'.

пов'язані теми

Уважаемые партнеры, если Вас заинтересовала наша продукция, мы готовы с Вами сотрудничать. Вам необходимо заполнить эту форму и отправить нам. Наши менеджеры в оперативном режиме обработают Вашу заявку, свяжутся с Вами и ответят на все интересующее Вас вопросы.

Или позвоните нам по телефонам: (048) 823-25-64

Организация (обязательно) *

Адрес доставки

Объем

Как с вами связаться:

Имя

Телефон (обязательно) *

Мобильный телефон

Ваш E-Mail

Дополнительная информация: