Статьи

C #. Практика. Вывод таблицы MS Access в DataGridView

  1. Условие задачи Пусть имеем базу данных, созданную в программе Microsoft Access. Имя файла базы...

Условие задачи

Пусть имеем базу данных, созданную в программе 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; }}}

DefaultView;  }}}

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

6. Схема взаимодействия.

Схема взаимодействия между объектами представлена ​​на рис. 6.

Рис. 6. Схема взаимодействия между объектами для доступа к базе данных

Таким образом можно выводить на форму любую таблицу базы данных. Условия вывода данных из базы данных задаются в строке SQL-запрос в переменной CmdText.
Например, если в CmdText задать такую ​​строку:

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

то в результате из базы данных будут выведены те записи, которые начинаются на букву "И" (Иванов, Иващенко и т.д.).

связанные темы

Новости

Блог по SEO-продвижению
Всем доброго времени суток! С вами на связи Макс Метелев и порадую я вас сегодня свеженьким постом на тему — как раскрутить блог в интернете. Мало просто создать блог, для этого необходимо провести

Встраиваемые вытяжки
Современные кухни обустроены полным комплектом оборудования, чтоб хозяйка и домочадцы ощущали себя очень комфортабельно. Одним из нужных компонент современных кухонь является вытяжка. Тяжело представить,

Контроль герметичности
Течь - этo канал либо пористый участок издeлия либо егo частей, нарушающих их плотность. Кaк правило, малые соответствующие размeры течей исключают возможность иx зрительного наблюдения либо обнаружения

Кымдан 2 купить
Доныне Кымдан-2 Инъекция более 30 раз была представлена на муниципальных и интернациональных выставках и удостоена золотых медалей и премий, сначала золотой медали WIPO (Глобальная организация умственной

Анализ сайта школы
За последние несколько лет школьные сайты перешли из разряда инновационных технологий, доступных и используемых единичными лидерами информационного движения, в категорию массовой практики. Более того,

Отдых в Париже
Туристский бизнес переживает не наилучшее время, туристические агентства запираются одна за другой, при этом не только лишь малые, да и достаточно прочные и размеренно стоящие на ногах. Потому давайте

Доставка контейнера из китая
телефон: +86 13999179145 Гуанчжоу телефон: +86 18609000245 ТЕКУЩЕЕ ВРЕМЯ Новосибирск Китай USD/RUB63. 907410

Помощь в подборе автомобиля
Наша компания предлагает Вам помощь в подборе автомобиля. В ближайшее время число автомобилей на дорогах Рф постоянно возрастает, неограниченное количество машин продаётся и покупается. К огорчению не

Регистрация доменов
Обычно любая работа над созданием сайта начинается на компьютере, но после того, как сайт готов, его необходимо разместить во всемирной паутине интернет. Естественно, что у тех новичков, кто создал свой

Капитальный ремонт квартир
Ремонт — дело не только лишь не дешевое, да и долгое. Время от времени есть возможность переработать интерьер квартиры при помощи косметического ремонта, который обходится существенно дешевле, чем серьезный.

Карта