powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Обновление данных из dataset в БД
22 сообщений из 22, страница 1 из 1
Обновление данных из dataset в БД
    #32788268
Я вручную создал датасет, в нем таблицу, в таблице столбцы полностью повторяющие названия и кол-во столбцов в требуемой таблице бД, добавил в таблицу моего датасета новую запись.
как мне теперь добавить эту запись из моего датасета в БД?
Названия таблиц в БД и датасете тоже совпадают.
...
Рейтинг: 0 / 0
Обновление данных из dataset в БД
    #32788310
Misha 'Karn' Ivanov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
используйте метод Update у объекта DataAdapter
...
Рейтинг: 0 / 0
Обновление данных из dataset в БД
    #32788451
Фотография Worobjoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Надо еще создать Command-ы этого DataSet
есть пример

http://www.sql.ru/forum/actualthread.aspx?tid=136616
...
Рейтинг: 0 / 0
Обновление данных из dataset в БД
    #32788509
Misha 'Karn' Ivanov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
не датасет наверно всеже,а адаптера. Это более идеологически верно..вообще,надо МСДН глянуть
...
Рейтинг: 0 / 0
Обновление данных из dataset в БД
    #32788516
Не, вы наверное не поняли... или я не так понял.
Я руками написал все команды на создание датасета, создал в нем таблу, добавил туда колонки, потом добавил 1 новую запись. Создал эту таблу по образу и подобию той что лежит в БД.
соединение с БД еще не создавалось.
Теперь после всех этих операций-манипуляций мне нужно добавить эту строку в мою БД. Как?
...
Рейтинг: 0 / 0
Обновление данных из dataset в БД
    #32788524
Misha 'Karn' Ivanov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
создать объект DataAdapter, привязать его к таблице, задать адаптеру команды Update,Insert,Delete и вызвать Update...возможно,так,не знаю.Но мое мнение - не стоит создавать DataSet руками "по образу и подобию" того что в БД,раз уж вы смогли запихнуть данные для датасета в формат "для образа и подобия", лучше подгрузите талицу из базы и работайте
...
Рейтинг: 0 / 0
Обновление данных из dataset в БД
    #32788629
Ха!!!! смеетесь?! :-)
В таблице 20000 строк!
...
Рейтинг: 0 / 0
Обновление данных из dataset в БД
    #32788736
Это ведь не выгодно гонять такие объемы информации туда и оьратно по каналу!!!
А можно как нибудь датасет из базы нужной таблицей заполнить и чтобы данные из нее не тянулись а только структура?
...
Рейтинг: 0 / 0
Обновление данных из dataset в БД
    #32788965
Фотография Worobjoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Работа с БД "напрямую" - ч/з объект Command с параметрами.
CommandText - типа "INSERT INTO ...
Connection - то же создать придется

20000 строк на вводе данных - это где то связанная "родительская" таблица должна быть и не одна. По ней и фильтровать (SelectCommand.CommandText).
...
Рейтинг: 0 / 0
Обновление данных из dataset в БД
    #32788974
Misha 'Karn' Ivanov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Guest from the West :-)Это ведь не выгодно гонять такие объемы информации туда и оьратно по каналу!!!
А можно как нибудь датасет из базы нужной таблицей заполнить и чтобы данные из нее не тянулись а только структура?

Там все за тебя правильно сделают и объемы информации не гоняются..так, объемчики...касательно структуры - метод FillSchema у адаптера
...
Рейтинг: 0 / 0
Обновление данных из dataset в БД
    #32789032
Guest from tge West
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да вы правы насчет insert & command - это первое что приходит в голову,
но почему я решил делать сначала в датасет а потом загонять базу: потому, что перед тем как присвоить какому то столбцу значение я проверяю есть ли у меня в переменной X значение, если есть то присваиваю значение в row["X"] иначе перехожу к следующему столбцу.
Я не знаю как сформировать insert строку только с теми значениями которые у меня реально есть....?
У меня в этой таблице 130 полей (не пинайте - планировал не я)
можно конечно вставить все а те которые пустые пропустить, но я думал что так будет производительнее.
Что Вы посоветуете?
...
Рейтинг: 0 / 0
Обновление данных из dataset в БД
    #32789294
Guest from the West
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
WorobjoffРабота с БД "напрямую" - ч/з объект Command с параметрами.
CommandText - типа "INSERT INTO ...
Connection - то же создать придется

20000 строк на вводе данных - это где то связанная "родительская" таблица должна быть и не одна. По ней и фильтровать (SelectCommand.CommandText).

Допустим я делаю этот запрос на insert в БД напрямую.
у меня есть 3 переменных
char X;
int Y;
string Z;

В БД есть столбцы rX, rY, rZ;
нужно проверить в каких переменных у меня содержаться значения и занести только их...

string cmdQuery = "INSERT INTO TEST (rX, rY, rZ) values (X, Y, Z)";
OracleConnection con = new OracleConnection("User Id=test;Password=test;Data Source=oracle");
OracleCommand cmd = new OracleCommand(cmdQuery, con);
cmd.Connection.Open();
cmd.ExecuteNonQuery();
cmd.Dispose;
...
...
...

Так будет работать или в cmdQuery мои параметры как то по другому надо добавлять?
...
Рейтинг: 0 / 0
Обновление данных из dataset в БД
    #32789346
Фотография Worobjoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, можно просто "слепить" строку и загнать ее в InsertCommand
и на этом все.

С параметрами InsertCommand сложнее
если создать ее в дизайнере, то текст
INSERT INTO TEST (rX, rY, rZ) values (?, ?, ?)
автоматически создаст параметры
заполнять их надо по их индексу:
myInsertCommand(2) - это значение rZ
(если это MSSQL параметры можно по именам)

...
Вопрос:
У DataTable есть DefaultValue для каждого поля.
Значения по умолчанию вместо незаполненных полей DataTable пойдет?

И если да - то все равно ч/з DataAdapter будет удобнее
...
Рейтинг: 0 / 0
Обновление данных из dataset в БД
    #32789419
Guest from the West
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
WorobjoffДа, можно просто "слепить" строку и загнать ее в InsertCommand
и на этом все.

С параметрами InsertCommand сложнее
если создать ее в дизайнере, то текст
INSERT INTO TEST (rX, rY, rZ) values (?, ?, ?)
автоматически создаст параметры
заполнять их надо по их индексу:
myInsertCommand(2) - это значение rZ
(если это MSSQL параметры можно по именам)

...
Вопрос:
У DataTable есть DefaultValue для каждого поля.
Значения по умолчанию вместо незаполненных полей DataTable пойдет?

И если да - то все равно ч/з DataAdapter будет удобнее

Я работаю с базой данных Oracle и в дизайнере для нее автоматом вышеназванные вещи генерить нельзя - всё приходится писать ручками. Вы имеете ввиду то что для каждого value мне придется добавлять параметр??
т.е. например в моем случае (Oracle) это будет примерно так:
INSERT INTO TEST (rX, rY, rZ) values (:X, :Y, :Z)
cmd.Parameters.Add("X", OracleDbType.Int32, 10);
cmd.Parameters["X"].Value=X;
...
Да???
Если так то я поппал на геморой - у меня в таблице 130 полей!!!! о ВЕЛИКИЙ УЖАС!!! :-(
...
Рейтинг: 0 / 0
Обновление данных из dataset в БД
    #32789450
Фотография Worobjoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
То же работаю с Oracle :-))
использую MsOleDbProvider for Oracle
(он поддерживает именованные параметры)
В дизайнере бросаю таблицу с сервера на форму
автоматически генерится DataAdapter со всем джентльменским набором:
все комманды, все параметры
надо только отредактировать их
проблемы:
- корректировать WHERE
- заголовки полей типа "ЖЖЖ_ДДД" подменяются PARAM1

Если еще и типизированный DataSet создать, там вообще удобно:
row из него подсказывет ч/з IntellySence имена полей.
(даже копаться с параметрами не надо:-)

Надо незабыть про SEQUENCE, чтобы уникальный ключ добавить этому row
...
Рейтинг: 0 / 0
Обновление данных из dataset в БД
    #32789499
Фотография Worobjoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
+ к тому:
Совсем необязательно делать Fill DataSet-у
Просто добавляем строки, а потом Update.
...
Рейтинг: 0 / 0
Обновление данных из dataset в БД
    #32789541
Guest from the West
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Worobjoff+ к тому:
Совсем необязательно делать Fill DataSet-у
Просто добавляем строки, а потом Update.

Я использую ODP.NET
А он дизайнером не поддерживается.
только intellisense :-(

Так как быть с cmdQuery?
Надо для каждого элемента который будем вставлять генерить params?

нельзя просто Values() вставить в кавычках имя переменной и чтобы в БД её значение занеслось?
...
Рейтинг: 0 / 0
Обновление данных из dataset в БД
    #32789567
Фотография Worobjoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А вариант без параметров, динамически созданный SQL почему не подходит?
...
Рейтинг: 0 / 0
Обновление данных из dataset в БД
    #32789609
Guest from the West
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
WorobjoffА вариант без параметров, динамически созданный SQL почему не подходит?

Ой.. что то я запутался.... как это?
приведите пример.
...
Рейтинг: 0 / 0
Обновление данных из dataset в БД
    #32789636
Фотография Worobjoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну, это наверно как у всех:

в цикле по полям
две строковые преременные
1я - INSERT INTO XXX(
2я - VALUES(
1ю наращиваем именами полей
2ю значениями

после цикла слепляем их в одну и кидаем в myCommand.CommandText

myCommand.ExecuteNonQuery

параметров тут не надо.
...
Рейтинг: 0 / 0
Обновление данных из dataset в БД
    #32789726
Guest from the West
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
WorobjoffНу, это наверно как у всех:

в цикле по полям
две строковые преременные
1я - INSERT INTO XXX(
2я - VALUES(
1ю наращиваем именами полей
2ю значениями

после цикла слепляем их в одну и кидаем в myCommand.CommandText

myCommand.ExecuteNonQuery

параметров тут не надо.

А как? Не понял. у меня ведь значения не в массиве храняться а куча переменных с разными именами...
...
Рейтинг: 0 / 0
Обновление данных из dataset в БД
    #32789871
Фотография Worobjoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ожидал такой вопрос.

Чтобы облегчить себе жизнь с помощью циклов надо какие-то структуры
поддерживать. Это - уже особенности языка, на котором пишешь.

Тут даже не знаю что посоветовать.
- Пытаться как-то объединить переменные в структуру
- не сильно увлекаться. иногда тупо переписать 130 if-ов в процедуре бывает быстрее, чем искать изящное решение.
...
Рейтинг: 0 / 0
22 сообщений из 22, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Обновление данных из dataset в БД
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]