Vvmebel.com

Новости с мира ПК
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

C подключение к базе данных access

C подключение к базе данных access

Спрашивающий

Общие обсуждения

Данная статья восстановлена из кэша гугла.

Автор статьи: Александр Кобелев aka Megano.

Подключение к Access

В своей работе я буду использовать Visual Studio 2008 Pro & C#

Довольно часто на форуме всплывает данный вопрос, по сему решил обобщить разрозненную информацию в данном сообщении.

Я покажу в трех частях как можно подключиться и взаимодействовать с файлом базы данных Access .

Часть 1 — Где с помощью визуальных средств добавляем к нашему проекту копию файла данных.

Часть 2 — Где с помощью визуальных средств подключаем существующий файл без создания копии в проекте.

Часть 3 — Чисто код.

Первоначально понадобится таблица с данными в файле Access .

Имя файла db1.mdb, таблица People c данными:

Типы данных: Код_People — Счетчик, Имя — Текст, ДатаРождения — Дата/Время

Часть 1

Где с помощью визуальных средств добавляем к нашему проекту копию файла данных.

Создаем новый Windows Forms проект.

File → New → Project → Windows → Windows Forms Application и называем его VisualAccessConnect

правой кнопкой мыши по проекту → Add → Existing Item. → В типах файлов выбираем Data Fiels → после чего находим наш db1.mdb и жмем ОК .

Автоматически открывается Data Source Configuration Wizard → Отмечаем, что мы хотим выбрать все таблицы.

После чего у нас появляется в проекте строго типизированный DataSet содержащий в себе DataTable People и PeopleTableAdapter

Теперь добавляем на Form1 DataGridView

И в его свойстве DataSource выбираем нашу таблицу People

Все готово к отображению данных и при нажатии ctrl + F5 вы увидите такую картину:

Если у вас вывалилось исключение — the ‘microsoft.jet.oledb.4.0’ provider is not registered on the local machine

Вам необходимо зайти в настройки проекта и выставить Platform Target x86

Теперь добавим кнопку, которая нам поможет внести изменения в базу.

Перетащим на Form1 Button, сделаем двойной клик мышью, на ней, и впечатаем следующий код в обработчике события

this .peopleTableAdapter.Update( this .db1DataSet.People);

Теперь мо жно запускать наш проект, вносить изменения в данные и сохранять их.

Первоначально, когда мы добавляем файл данных в проект — добавляется его копия, а оригинальный файл остается на своем месте, в неизменном состоянии.

То же самое происходит когда мы нажимаем ctrl + F5 в папку debug копируется копия уже скопированного в наш проект файла данных и если вы сделаете Rebuild проекта, то все изменения откатятся к первоначальному состоянию(так как файл в папку debug будет скопирован вновь из нашего проекта), но в релизной версии все будет работать превосходно.

Часть 2

Где с помощью визуальных средств подключаем существующий файл без создания копии в проекте.

Создаем новый Windows Forms проект.

File → New → Project → Windows → Windows Forms Application и называем его VisualAccessConnectViaFilePath

Нажимаем View → Server Explorer или ctrl + W + L

Вызываем контекстное меню у Data Connections → Add Connection

В открывшемся окне нажимаем кнопку Change напротив DataSource

И выбираем Microsoft Access Database File

После чего выбираем путь к нашему файлу и проверяем соединение

Теперь добавляем на форму DataGridView, в его свойстве DataSource выбираем Add Project Data Source

Data Base → И в выпадающем меню выбираем строку подключения к нашему файлу, которую мы создали ранее, после чего появится предупреждение что файл базы находится вне приложения с предложением сделать копию, выбираем NO

После чего в открывшемся мастере выбираем таблицу People ( см часть1) и ОК

Так же добавляем кнопку для сохранения изменений, аналогично как и в первой части.

Теперь наше приложение отображает данные с текущего файла данных и изменяет его при сохранении.

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

Часть 3

Создадим консольное приложение.

File → New → Project → Windows → Console Application и назовем его AccessConnectPureCode

И полностью заменяем весь автоматически сгенерированный код на

public static void Main()

string connectionString = @»provider=Microsoft.Jet.OLEDB.4.0; data source=C:Datadb1.mdb» ;

OleDbConnection myOleDbConnection = new OleDbConnection (connectionString);

OleDbCommand myOleDbCommand = myOleDbConnection.CreateCommand();

myOleDbCommand.CommandText = «SELECT * FROM People» ;

OleDbDataReader myOleDbDataReader = myOleDbCommand.ExecuteReader();

Console .WriteLine( string .Format( «Id: <0>, Name: <1>, Birthday: <2>» ,

OleDbCommand changeDashaName = myOleDbConnection.CreateCommand();

changeDashaName.CommandText = @»UPDATE People SET Имя = ‘Даша’ WHERE Имя = ‘Dasha'» ;

Нужно проследить, чтоб строка подключения указывала на существующий файл.

WPF Подключение к базе данных MS Access

Всем доброго дня, сегодня в этой статье, я бы хотел рассказать вам о WPF и MS Access, а также их взаимодействии друг с другом. Мало кто знает, но MS Access довольно хорошо дружит с WPF, но для начала думаю стоит рассказать, что из себя представляет то и другое.

Windows Presentation Foundation — один из компонентов ядра .NET Framework, который позволяет разработчикам создавать богатые, различные Windows приложения.

Microsoft Office Access или просто Microsoft Access — реляционная система управления базами данных корпорации Microsoft. Входит в состав пакета Microsoft Office. Имеет широкий спектр функций, включая связанные запросы, связь с внешними таблицами и базами данных.

Microsoft Access 2016

Создание базы данных и внутренних таблиц

Создаём БД и переходим к созданию и настройке таблиц, а именно переходим в режим конструктора, предварительно указав наименование базы данных.

Создание таблицы в MS Access

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

Результат создания таблицы в MS Access

Внесём одну из записей с которой будем осуществлять работу.

Добавление записи в MS Access

На этом создание базы данных законченно.

Разработка приложения и подключение к БД

Переходим к приложению WPF и у главной формы (MainWindow.xaml.cs) прописываем функцию подключения к базе данных:

Читать еще:  Access проверка на null

Создание функции для работы с MS Access

Важно отметить что весь текст у будет отмечен красным а при подключении будут возникать ошибки. Вся проблема в том, что нужно добавить несколько библиотек, которые позволяют работать с базой данных, для этого, нужно нажать ПКМ по подчёркнутому красной линией элементу и выбрать пункт «Быстрые действия и рефакторинг. », после из предложенных действий выбрать первый вариант который добавляет библиотеку: using System.Data.OleDb;

Подключение библиотек для работы с MS Access

Переменная connection содержит в себе текстовую информацию, а именно: тип подключения, и путь подключения. На этом подключение к MS Access завершено, всё что нужно сделать: вызвать функцию в нужном вам месте и обработать запрос.

Выполнение запросов и обработка информации

Для того что бы работать с базой данных MS Access из приложения WPF необходимо знать четыре основных запроса на языке SQL:

  • SELECT (вывод данных из таблицы);
  • INSERT (вставить данные в таблицу);
  • UPDATE (обновить данные в таблице);
  • DESTROY (удалить данные из таблицы).

Важно помнить, что только SELECT возвращает данные, получить данные из других запросов не возможно.

Для того чтобы сделать запрос SELECT и обработать пришедшие данные, после инициализации компонентов вставляем следующий код:

Результат запроса SELECT

Чтобы вставить новую запись, нужно использовать следующий код:

Результат запроса INSERT

Теперь нужно обновить пароль, изменив «test2» на «qwerty123». Для этого используется всё тот же метод, передающий SQL запрос.

Результат запроса UPDATE

Чтобы осуществить удаление записи из таблицы, используется следующий код:

Результат запроса DELETE

Таким образом можно выполнять запросы к базе данных MS SQL Server.

Так же вы можете использовать MS Access в качестве локальной базы данных, а MS SQL основной. Статьи по подключению и выполнению запросов в MS SQL можно найти на нашем сайте.

C#: работа с запароленной базой данных Access: создание, подключение, изменение пароля, сжатие

У всех, кто привык работать с базой данных через провайдер Microsoft.Jet.OLEDB, не возможность подключиться к запароленной базе данных сначала вызывает недоумение, а потом уже и гнев. Ещё бы! Во всех руководствах черным по белому написано использовать
«Provider=Microsoft.Jet.OLEDB.4.0;Da ta Source= ;Password= «
но C# упорно отказывается подключаться.
Решение — другой провайдер, а именно «Microsoft.ACE.OLEDB». Попробуйте использовать строку подключения
Provider=Microsoft.ACE.OLEDB.12.0;Data Source= ;Jet OLEDB:Database Password= «
и возрадуйтесь чуду! 🙂 А почему нет коннекта на Microsoft.Jet.OLEDB — остается только гадать.

Создание новой базы данных Access с паролем
Для этого нам нам понадобится следующее:

  1. Добавить в проект ссылку на Microsoft DAO Object Library (Это COM объект).
  2. Добавить в начале кода using dao;
  3. Добавить следующий код:

DBEngine Провайдер = new DBEngine();
Провайдер.Workspaces[0].CreateDatabase( азаДанных>, «;pwd= «);

Установка пароля к существующей базе данных Access
Для установки пароля на не запароленную базу данных нам понадобится изменить код из предыдущего абзаца на этот:

DBEngine Провайдер = new DBEngine();
Database БД = Провайдер.Workspaces[0].OpenDatabase( йлБазыДанных>, true, false);
БД.NewPassword(«», );

Изменение пароля к базе данных Access
Для изменения существующего пароля нужно немного модифицировать код:

DBEngine Провайдер = new DBEngine();
Database БД = Провайдер.Workspaces[0].OpenDatabase( йлБазыДанных>, true, false, «;pwd= «);
БД.NewPassword( , );

Удаление пароля к базе данных Access
Для удаления пароля используется тот же метод, что и для изменения пароля, только вместо нового пароля указываем пустую строку «»:

Сжатие базы данных Access
К сожалению, провайдер Microsoft.ACE.OLEDB.12.0 не годится для сжатия базы данных Access. Поэтому мы воспользуемя другим, более привычным нам Microsoft.Jet.OLEDB.4.0. Для сжатия нам понадобится следующее:

  1. Добавить в проект ссылку на Microsoft Jet and Replication Objects Library (Это COM объект).
  2. Добавить в начале кода using JRO;
  3. Добавить следующий код:

string Подключение = «Data Source= ;Provider=Microsoft.J et.OLEDB.4.0;Jet OLEDB:Database Password= «;
string Подключение2 = «Data Source= ;Provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDB:Database Password= «;
Провайдер.CompactDatabase(Подключение, Подключение2);
File.Delete(Файл);
File.Move(Файл2, Файл);

Поскольку, напрямую открытую базу данных сжать нельзя, то сжатая база записывается в другой файл, а затем старая заменяется новой. Если пароль для старой базы данных отсутствовал или его не нужно задавать в новой, то достаточно просто в соответствующей переменной удалить «Jet OLEDB:Database Password= «.

Практическая работа №02 Подключение базы данных ACCESS в Visual Studio 2012 C# методом ADO (визуальное)

1. Цель работы:

Изучить правила подключения баз данных ACCESS вVisual Studio 2012 C#.

Создать приложение для демонстрации подключения базы данных.

Темы для предварительной проработки

1). Среда разработки Visual Studio 2012 C#

2). Элементы Visual Studio 2012 C#

Теоретический материал

ADO .NET. Доступ к данным

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

Объектная модель ADO .NET реализует отсоединенный доступ к данным. При этом в Visual Studio .NET существует множество ВСТРОЕННЫХ мастеров и дизайнеров, которые позволяют реализовать механизмы доступа к БД еще на этапе разработки программного кода.

С другой стороны, задача получения доступа к данным может быть решена непосредственно во время выполнения приложения.

Концепция доступа к данным в ADO .NET основана на использовании двух компонентов:

• НАБОРА ДАННЫХ (представляется объектом класса DataSet) со стороны клиента. Это локальное временное хранилище данных;

• ПРОВАЙДЕРА ДАННЫХ (представляется объектом класса DataProvider). Это посредник, обеспечивающий взаимодействие приложения и базы данных со стороны базы данных (в распределенных приложениях – со стороны сервера).

ADO .NET. Объектная модель

Объектная модель ADO .NET предполагает существование (при написании приложения для работы с базой данных — использование) двух множеств классов, выполняющих четко определенные задачи при работе с базой данных:

Классы подсоединенных объектов обеспечивают установление соединения с базой данных и управление базой со стороны приложения; классы отсоединенных объектов обеспечивают сохранение, использование и преобразование полученной от базы данных информации на стороне приложения.

Читать еще:  Типы данных бд access

DataSet

В рамках отсоединенной модели ADO .NET объект DataSet становится важным элементом технологии отсоединенного доступа. Объект-представитель DataSet ПРЕДСТАВЛЯЕТ МНОЖЕСТВО ТАБЛИЦ.

Для успешного решения задачи представления в DataSet’е есть все необходимое. Его функциональные возможности позволяют загрузить в локальное хранилище на стороне приложения данные из любого допустимого для ADO .NET источника: SQL Server, Microsoft Access, XML-файл.

В числе данных – членов этого класса имеется набор Tables. Объект DataSet может содержать таблицы, количество которых ограничивается лишь возможностями набора Tables.

Для каждой таблицы – элемента набора Tables может быть (и, естественно, должна быть) определена структура таблицы. В случае, когда приложение взаимодействует с реальной базой данных, структура таблиц в DataSet’е должна соответствовать структуре таблиц в базе данных. DataSet – это находящийся в памяти объект ADO .NET, используемый в приложении для представления данных; он определяет согласованную реляционную модель базы данных, которая не зависит от источника содержащихся в нем данных. Степень полноты модели определяется задачами, которые решает приложение.

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

Содержащуюся в объекте DataSet информацию можно изменять независимо от источника данных (от самой БД). Соответствующие значения формируются непосредственно в программе и добавляются в таблицы.

При работе с базой данных данные могут собираться из разных таблиц, локальное представление которых обеспечивается различными объектами – представителями классов DataSet. В классе DataSetопределено множество перегруженных методов Merge, которые позволяют объединять содержимое нескольких объектов DataSet.

Любой объект-представитель класса DataSet позволяет организовать чтение и запись содержимого (теоретически – информации из базы) в файл или область памяти. При этом можно читать и сохранять:

• только содержимое объекта (собственно информацию из базы);

• только структуру объекта – представителя класса DataSet;

• полный образ DataSet (содержимое и структуру).

Таким образом, DataSet является основой для построения различных вариантов отсоединенных объектов – хранилищ информации.

Класс DataSet – класс не абстрактный и не интерфейс. Это значит, что существует множество вариантов построения отсоединенных хранилищ.

На основе базового класса DataSet можно определять производные классы определенной конфигурации, которая соответствует структуре базы данных.

Можно также создать объект – представитель класса DataSet оригинальной конфигурации и добавить непосредственно к этому объекту все необходимые составляющие в виде таблиц (объектов – представителей класса Table) соответствующей структуры и множества отношений Relation.

Объект – представитель класса DataSet и сам по себе, без сопутствующего окружения, представляет определенную ценность. Дело в том, что информация, представляемая в приложении в виде таблиц, НЕ ОБЯЗЯТЕЛЬНО должна иметь внешний источник в виде реальной базы данных. Ничто не мешает программисту обеспечить в приложении чтение обычного «плоского» файла или даже «накопить» необходимую информацию посредством интерактивного взаимодействия с пользователем, используя при этом обычный диалог. В конце концов, база данных – это один из возможных способов ОРГАНИЗАЦИИ информации (а не только ее хранения!). Не случайно DataSet представляет ОТСОЕДИНЕННЫЕ данные.

На DataSet работают все ранее перечисленные элементы ADO .NET.

В свою очередь, в приложении, обеспечивающем взаимодействие с базой данных, объект DataSet функционирует исключительно за счет объекта DataAdapter, который обслуживает DataSet.

При этом DataAdapter является центральным компонентом архитектуры отсоединенного доступа.

Пример

Создадим базу данных planets.mdb (в формате ACCESS 2003). Структура таблицы PLANET:

Заполним таблицу данными

Создадим проект в Visual Studio 2012 C#.

Разместим на форме компонент DataGridView:

Нажмем на черную стрелочку в правом верхнем углу компонента DataGridView.

Появится окно настройки источника данных:

Выберем нашу базу и таблицу PLANET.

Выбрать таблицу PLANET.

На форме появились элементы для связи с базой данных и таблицей.

Запустим проект на выполнение:

Протестируем полученное приложение.

В базе данных не сохраняются внесенные изменения (вставка, удаление, корректировка).

Можно проделать следующий эксперимент: установить на форме компонент BidingNavigator.

Результат будет такой же – изменения не сохраняются в базе данных.

BestProg

Подключение базы данных Microsoft Access к приложению в Microsoft Visual Studio

Содержание

Задание

Пусть имеется некоторая база данных, созданная в СУБД Microsoft Access . Файл базы данных имеет имя «db1.mdb«. Путь к файлу базы данных

База данных имеет одну таблицу с именем «Tovar».

Необходимо осуществить подключение базы данных к Windows -приложению на языке C# средствами Microsoft Visual Studio 2010 . Приложение должно быть реализовано как Windows Forms Application .

Выполнение

1. Создание приложения типа Windows Forms Application .

2. Вызов мастера подключения.

Для доступа к файлу базы данных необходимо сделать его подключение к приложению. Это осуществляется путем вызова команды « Add New Data Source… » из меню « Data » (рис. 1) либо кликом на крайней левой кнопке с панели инструментов Data Source .

Рисунок. 1. Вызов мастера подключения к файлу базы данных

3. Выбор типа источника данных.

В результате откроется окно мастера для подключения к источнику данных которое изображено на рис. 2.

Рисунок. 2. Выбор типа подключения из которого приложение будет получать данные

В окне необходимо выбрать один из четырех возможных вариантов подключения к источнику данных. В MS Visual Studio существует четыре типа подключения к источникам данных:

  • Database – подключение к базе данных и выбор объектов базы данных;
  • Service – открывает диалоговое окно Add Service Reference позволяющее создать соединение с сервисом, который возвращает данные для вашей программы;
  • Object – позволяет выбрать объекты нашего приложения, которые в дальнейшем могут быть использованы для создания элементов управления ( controls ) с привязкой к данным;
  • Share Point – позволяет подключиться к сайту SharePoint и выбрать объекты для вашей программы.
Читать еще:  Поле мемо в access 2020

В нашем случае выбираем элемент Database и продолжаем нажатием на кнопке Next .

4. Выбор модели подключения к базе данных.

Следующий шаг – выбор модели подключения к базе данных (рис. 3).

Рис. 3. Выбор модели подключения к базе данных

Система предлагает выбор одного из двух вариантов:

  • модели данных на основе набора данных ( Dataset );
  • модели данных Entity , что означает, что система может сгенерировать модель данных из базы данных которой могут выступать сервера баз данных Microsoft SQL Server , Microsoftt SQL Server Compact 3.5 или Microsoft SQL Server Database File , либо создать пустую модель как отправную точку для визуального проектирования концептуальной модели с помощью панели инструментов.

В нашем случае выбираем тип модели данных DataSet .

5. Задание соединения с БД.

Следующим шагом мастера (рис. 4) есть выбор соединения данных которое должно использоваться приложением для соединения с базой данных.

Рис. 4. Выбор соединения с базой данных

Для создания нового соединения необходимо выбрать кнопку « New Connection… «. В результате откроется окно « Add Connection » (рис. 5) в котором нужно добавить новое соединение Microsoft Access и выбрать маршрут к файлу базы данных.

В нашем случае поле « Data source » уже содержит нужный нам тип соединения « Microsoft Access Database File (OLE DB) «.

Рис. 5. Добавление нового соединения и выбор файла базы данных

Если нужно выбрать другую базу данных, то для этого используется кнопка « Change… «, которая открывает окно, изображенное на рисунке 6.

Рис. 6. Смена источника данных

В окне на рисунке 6 системой Microsoft Visual Studio будет предложено следующие виды источников данных:

  • Microsoft Access Database File – база данных Microsoft Access ;
  • Microsoft ODBC Data Source – доступ к базе данных с помощью программного интерфейса ODBC ( Open Database Connectivity );
  • Microsoft SQL Server ;
  • Microsoft SQL Server Compact 3.5 ;
  • Microsoft SQL Server Database File ;
  • Oracle Database – база данных Oracle .

Нажимаем кнопку « Browse… » и в открывшемся окне (рис. 7) « Add Connection » выбираем маршрут к файлу базы данных « db1.mdb «. Целесообразно размещать файл базы данных в каталоге содержащим исполняемый модуль приложения.

Для проверки правильности установленного соединения можно воспользоваться кнопкой « Test Connection «.

Рисунок 7. Окно « Add Connection » с выбранной базой данных « db1.mdb «

После нажатия на кнопке ОК система сгенерирует строку « Connection string » (рис. 8) который в дальнейшем будет использован для программного подключения к базе данных.

Кликаем на « Next » для продолжения работы мастера.

Рис. 8. Строка Connection string

После выбора Next система выдаст информационное окно следующего вида (рис. 9). Если выбрать «Да», то файл базы данных « db1.mdb » будет копироваться в выходной каталог приложения каждый раз при его запуске в среде MS Visual Studio . Как правило, это каталог, содержащий основные модули приложения. В нашем случае каталог

В этом каталоге размещаются все основные исходные модули проекта, например Program.cs (модуль, содержащий основную функцию WinMain() ) , Form1.cs (содержит исходный код обработки главной формы приложения) и другие.

Рисунок 9. Окно добавления файла базы данных в проект

6. Формирование конфигурационного файла приложения.

После выбора кнопки « Next » мастера откроется следующее окно, в котором предлагается сохранить строку соединения в конфигурационный файл приложения (рис. 10).

Рисунок 10. Предложение записи строки подключения к базе данных в конфигурационный файл приложения

Ничего не изменяем, оставляем все как есть (кликаем на Next ).

7. Выбор объектов базы данных для использования в программе

Последнее окно мастера (рисунок 11) предлагает выбрать список объектов (таблиц, запросов, макросов, форм и т.д.), которые будут использоваться в наборе данных. Как правило выбираем все таблицы базы данных. В нашем примере база данных содержит всего одну таблицу с именем Tovar .

Рисунок 11. Выбор объектов базы данных, которые будут использоваться в данном наборе данных

После выбора кнопки « Finish » заканчиваем работу с мастером подключения. Теперь база данных подключена к приложению и будет автоматически подключаться при его запуске или при его проектировании в MS Visual Studio .

8. Что же изменилось в программе после выполнения мастера?

Если выбрать панель Data Source (рисунок 12), то можно увидеть, как подключен набор данных с именем db1Dataset в котором есть таблица с именем Tovar .

Рисунок 12. Окно DataSources содержит подключение к базе данных

Точно также можно увидеть изменентия в панели Server Explorer (рисунок 13), где появилась база данных « db1.mdb » с таблицей Tovar и ее полями. Приложение может подключать не только одну, но и несколько баз данных.

Рис. 13. Окно приложения с изменениями в панели Server Explorer

9. Подключение методов оперирования базой данных.

Для того, чтобы использовать методы, которые будут работать с базой данных MS Access (и не только MS Access ), необходимо подключить пространство имен System.Data.OleDb .

Для этого в основной форме ( Form1.cs ) в Solution Explorer выбираем режим просмотра кода (View Code) из контекстного меню (рис. 14) и вначале файла добавляем следующую строку:

Рисунок 14. Вызов программного кода главной формы приложения ( Form1.cs ) с помощью Solution Explorer

Общий вид верхней части файла Form1.cs будет следующим:

На этом этапе подключение к базе данных db1.mdb выполнено. Дальнейшими шагами есть создание программного кода для оперирования данными в базе данных.

Ссылка на основную публикацию
Adblock
detector