Форум программистов, компьютерный форум, киберфорум
Наши страницы

C# и базы данных, ADO.NET

Войти
Регистрация
Восстановить пароль
 
Aumi
17 / 22 / 7
Регистрация: 08.10.2015
Сообщений: 358
Завершенные тесты: 2
#1

Из DataTable в Access - C#

16.10.2017, 15:23. Просмотров 156. Ответов 4
Метки нет (Все метки)

Здравствуйте,
Есть такая возможность, имея DataTable tbl с данными, перенести все строчки в Access? Структура одинаковая
Я уже окончательно запуталась в порядке действий. Не подскажете теорию?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.10.2017, 15:23
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Из DataTable в Access (C#):

Загрузка в datatable несколькими запросами (MS Access) - C#
Есть БД в MS Access. Мне нужно получить из нее данные следующими запросами SELECT TOP 3 FROM MyTable WHERE MyTable.Category =...

Ошибка при добавление DataTable в MS Access - C#
Привет Всем, не могли бы Вы, уважаемые форумчане, помочь найти ошибку в программе (код ниже). Суть в том, что я создаю DataTable и хочу его...

Как записать dataTable в таблицу базы Access - C#
Народ, как записать предварительно заполненную dataTable в таблицу базы Access? Второй день уже мозги конопачу, в поиске ни чёрта нет( ...

.NET 2.x Запрос к связанным таблицам (Access), через Datatable с выводом в два Combobox - C#
Всем доброго. Помогите кто с проблемкой, есть две связанные таблицы Statiy ID-ключ Name - string Statiy ID-integer Name -...

Как из одного datatable перенести столбец в другой datatable? - C#
Здравствуйте! Кто может подсказать: как из одного datatable перенести столбец в другой datatable?

datatable - C#
можно ли заполнить один столбец datatable из разных столбцов разных таблиц (тип данных одинаковый)? Если да то как?

4
hoolygan
257 / 264 / 66
Регистрация: 21.06.2016
Сообщений: 1,036
16.10.2017, 16:25 #2
Смотря на сколько большая таблица, и либо перенос либо обновление.
Есди просто перенос, то делайте скрипт на шарпе в цикле, по 50-70 строк, а с обновлением то аккуратней, чтобы не задвоить.
0
Aumi
17 / 22 / 7
Регистрация: 08.10.2015
Сообщений: 358
Завершенные тесты: 2
16.10.2017, 17:17  [ТС] #3
hoolygan, столбцов не больше 10, да и строк где то не больше 15.
Можно по подробнее про перенос?
0
hoolygan
257 / 264 / 66
Регистрация: 21.06.2016
Сообщений: 1,036
16.10.2017, 18:19 #4
Ну так а куда уж подробней-то.
Для скрипта access нужна строка вида insert into... values....
Вот и стройте строку внутри цикла, перебирая Ваши элементы и добавляя поочередно.
А потом за 1 раз открывайте соединение и втюхивайте эту строку акцесу.
Я не приверженец писать много исходного кода. Если человеку это нужно, то считаю, что лучше дать сторону, в которой нужно гуглить, так чему-то научится, чем тупо копипастил и ничего не понял.
1
OwenGlendower
Супер-модератор
Эксперт .NET
8660 / 7665 / 2815
Регистрация: 17.03.2014
Сообщений: 15,062
Записей в блоге: 1
16.10.2017, 20:24 #5
Aumi, можно с помощью data adapter.
C#
1
2
3
4
5
6
7
8
9
10
DataTable table = ...;
 
OleDbCommand insertCommand = new OleDbCommand("INSERT INTO TableName (Column1, Column2) VALUES(?, ?)", connection);
insertCommand.Parameters.Add("Column1", OleDbType.VarChar, 40, "Column1");
insertCommand.Parameters.Add("Column2", OleDbType.VarChar, 40, "Column2");
        
OleDbDataAdapter dataAdapter = new OleDbDataAdapter();
dataAdapter.InsertCommand = insertCommand;
 
dataAdapter.Update(table);
Вызов dataAdapter.Update(table) выполнит INSERT запрос для строк с DataRowState.Added, UPDATE для DataRowState.Modified и DELETE для DataRowState.Deleted. При необходимости можно явно пометить все строки как добавленные
C#
1
2
3
4
foreach (DataRow row in table.Rows)
{
    row.SetAdded();
}
Если DataTable изначально заполнялась через dataAdapter, то можно воспользоваться им и OleDbCommandBuilder для автоматической генерации INSERT команды
C#
1
2
3
4
5
6
7
8
DataTable table = ...;
OleDbDataAdapter dataAdapter = ...;
 
OleDbCommandBuilder commandBuilder = new OleDbCommandBuilder(dataAdapter);
// Генерация INSERT команды, у dataAdapter должна быть указана SelectCommand
commandBuilder.GetInsertCommand();
 
dataAdapter.Update(table);
2
16.10.2017, 20:24
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.10.2017, 20:24
Привет! Вот еще темы с ответами:

Datatable в бд - C#
Форумчане хэээлп! Выгружаю я данные в datatable вывожу их в datagridview,подскажите пожалуйста как мне иудалять и обновлять данные? ...

Dataset и DataTable - C#
ребят подскажите как извлечь DataTable из DataSet.

datatable to excel - C#
у меня в БД SQL таблица с 5-ю столбцами.Нужно экспортировать в excel второй и третий столбец.Как это можно сделать.Здесь примерный код но...

DataTable в IQueryable - C#
Как преобразовать DataTable в IQueryable<T> ?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru