Для добавления записей в Access использую код:
string connStringAcc = string.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0}", textBox2.Text); // textBox2.Text - путь к базе
using (OleDbConnection connAcc = new OleDbConnection(connStringAcc))
{
connAcc.Open();
OleDbCommand command1 = new OleDbCommand
("INSERT INTO " + textBox10.Text + // ТАБЛИЦА
"(" + textBox15.Text + // ПОЛЯ
") VALUES"
+ "('"
+
pol_1 + "', '" + pol_2
+
"')",
connAcc);
command1.ExecuteNonQuery();
Есть другие способы добавления записей в Access?
Имеется достаточно неплохое руководство на MSDN: Практическое руководство. Вставка новых записей в базу данных, в котором есть следующие пункты:
Вставка новых записей с помощью адаптеров таблиц
В этом пункте все достаточно просто. Есть два подхода для вставки данных в нужную таблицу DataTable
в наборе данных, с помощью TableAdapter.Update
и TableAdapter.Insert
. Для этого понадобится экземпляр DataTable, который будет использоваться в качестве адаптера таблиц.
Для вставки новых записей в базу данных с помощью метода TableAdapter.Update:
DataTable
путем создания
новых строк DataRow
и добавления их к коллекции Rows
. Дополнительные
сведения см. в разделе Практическое руководство. Добавление строк в
объект DataTable
.DataTable
вызовите метод
TableAdapter.Update
. Можно контролировать объем данных для
обновления путем передачи всего DataSet
, DataTable
, массива DataRow
или одной DataRow
.Для вставки новых записей в базу данных с помощью метода TableAdapter.Insert:
Insert
, передав значения для каждого
столбца в качестве параметров.Вставка новых записей с помощью командных объектов
То есть новые записи будут вставляться непосредственно в базу данных с помощью командных объектов. То есть создать SqlConnection
, открыть соединение, выполнить команду и закрыть. В принципе то, что Вы делаете уже у себя.
Для вставки новых записей в базу данных с помощью командных объектов:
Connection
,
CommandType
и CommandText
.Примечание:
Необходимо иметь доступ к базе данных, к которой вы пытаетесь подключиться, а также разрешение на вставку записей в нужную таблицу. Ну, думаю это и так понятно.
Касаемо подхода с OleDbConnection
, конечно, на первый взгляд, он кажется неудобным и громоздким, но если все вынести в отдельные методы и красиво оформить, к примеру сделать универсальные методы для вставки, выборки и удаления объектов и вынести в отдельный класс, что-то на подобии Helper, то Вы не заметите той громоздкости, которая окутывает Вас сейчас, выглядит это не так уж и плохо. Думаю именно от этого и начинаются поиски других подходов.
Также, думаю, что будут полезны следующие ссылки:
Так как очевидные способы перечислены, то приведу альтернативы:
microsoft dao 3.6 object
Если важна скорость, то можно использовать библиотеку microsoft dao 3.6 object library
.
Вот тут пруф скорости.
Я сам убедился на практике, что он быстрее.
Работа с ним похожа на ваш код, заисключеним того, что эта сборка COM
=> нужно следить за закрытием соединений.
Interop
Можно так же работать с Access через Interop.
Работа будет похожа, на то, как если бы вы писали VBA модуль в Access, но на C#.
Этот способ дает еще больше возможностей, так как вы получаете доступ к объектам Access, например запросы и модули.
Например, вы можете выполнить модуль Access из кода C#.
Но опять же, нужно следить за объектами, так как это тот же COM...
Для работы на целевой машине должен стоять Office или Access Engine.
Dapper
Можно воспользоваться Micro ORM Dapper, которая работает с теми объектами, которые реализуют IDbConnection в том числе и OleDbConnection.
С ним код выглядит яснее и лаконичнее.
Виртуальный выделенный сервер (VDS) становится отличным выбором
Ниже приведён код, нужно из полученного значения восстановить значения '47533', '23182', '52170'
Прошу помочь разобраться с сортировкой, Мне нужно, чтобы при условии $_SESSION['sort_opoz']=='rate', после сортировки по произвольному полю ratings_average, происходила...
Доброго времени суток! встала задача перенести небольшой проект с php+mysql на iis 8+mssql,уткнулся в стену со следующей строчкой :
Собственно вопрос, условно создается валидатор который принимает объект