|
Обновление данных из dataset в БД
|
|||
---|---|---|---|
#18+
Я вручную создал датасет, в нем таблицу, в таблице столбцы полностью повторяющие названия и кол-во столбцов в требуемой таблице бД, добавил в таблицу моего датасета новую запись. как мне теперь добавить эту запись из моего датасета в БД? Названия таблиц в БД и датасете тоже совпадают. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.11.2004, 09:10 |
|
Обновление данных из dataset в БД
|
|||
---|---|---|---|
#18+
используйте метод Update у объекта DataAdapter ... |
|||
:
Нравится:
Не нравится:
|
|||
18.11.2004, 09:36 |
|
Обновление данных из dataset в БД
|
|||
---|---|---|---|
#18+
Надо еще создать Command-ы этого DataSet есть пример http://www.sql.ru/forum/actualthread.aspx?tid=136616 ... |
|||
:
Нравится:
Не нравится:
|
|||
18.11.2004, 10:31 |
|
Обновление данных из dataset в БД
|
|||
---|---|---|---|
#18+
не датасет наверно всеже,а адаптера. Это более идеологически верно..вообще,надо МСДН глянуть ... |
|||
:
Нравится:
Не нравится:
|
|||
18.11.2004, 10:49 |
|
Обновление данных из dataset в БД
|
|||
---|---|---|---|
#18+
Не, вы наверное не поняли... или я не так понял. Я руками написал все команды на создание датасета, создал в нем таблу, добавил туда колонки, потом добавил 1 новую запись. Создал эту таблу по образу и подобию той что лежит в БД. соединение с БД еще не создавалось. Теперь после всех этих операций-манипуляций мне нужно добавить эту строку в мою БД. Как? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.11.2004, 10:50 |
|
Обновление данных из dataset в БД
|
|||
---|---|---|---|
#18+
создать объект DataAdapter, привязать его к таблице, задать адаптеру команды Update,Insert,Delete и вызвать Update...возможно,так,не знаю.Но мое мнение - не стоит создавать DataSet руками "по образу и подобию" того что в БД,раз уж вы смогли запихнуть данные для датасета в формат "для образа и подобия", лучше подгрузите талицу из базы и работайте ... |
|||
:
Нравится:
Не нравится:
|
|||
18.11.2004, 10:54 |
|
Обновление данных из dataset в БД
|
|||
---|---|---|---|
#18+
Ха!!!! смеетесь?! :-) В таблице 20000 строк! ... |
|||
:
Нравится:
Не нравится:
|
|||
18.11.2004, 11:26 |
|
Обновление данных из dataset в БД
|
|||
---|---|---|---|
#18+
Это ведь не выгодно гонять такие объемы информации туда и оьратно по каналу!!! А можно как нибудь датасет из базы нужной таблицей заполнить и чтобы данные из нее не тянулись а только структура? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.11.2004, 11:54 |
|
Обновление данных из dataset в БД
|
|||
---|---|---|---|
#18+
Работа с БД "напрямую" - ч/з объект Command с параметрами. CommandText - типа "INSERT INTO ... Connection - то же создать придется 20000 строк на вводе данных - это где то связанная "родительская" таблица должна быть и не одна. По ней и фильтровать (SelectCommand.CommandText). ... |
|||
:
Нравится:
Не нравится:
|
|||
18.11.2004, 12:59 |
|
Обновление данных из dataset в БД
|
|||
---|---|---|---|
#18+
Guest from the West :-)Это ведь не выгодно гонять такие объемы информации туда и оьратно по каналу!!! А можно как нибудь датасет из базы нужной таблицей заполнить и чтобы данные из нее не тянулись а только структура? Там все за тебя правильно сделают и объемы информации не гоняются..так, объемчики...касательно структуры - метод FillSchema у адаптера ... |
|||
:
Нравится:
Не нравится:
|
|||
18.11.2004, 13:02 |
|
Обновление данных из dataset в БД
|
|||
---|---|---|---|
#18+
Да вы правы насчет insert & command - это первое что приходит в голову, но почему я решил делать сначала в датасет а потом загонять базу: потому, что перед тем как присвоить какому то столбцу значение я проверяю есть ли у меня в переменной X значение, если есть то присваиваю значение в row["X"] иначе перехожу к следующему столбцу. Я не знаю как сформировать insert строку только с теми значениями которые у меня реально есть....? У меня в этой таблице 130 полей (не пинайте - планировал не я) можно конечно вставить все а те которые пустые пропустить, но я думал что так будет производительнее. Что Вы посоветуете? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.11.2004, 13:16 |
|
Обновление данных из dataset в БД
|
|||
---|---|---|---|
#18+
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 мои параметры как то по другому надо добавлять? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.11.2004, 14:38 |
|
Обновление данных из dataset в БД
|
|||
---|---|---|---|
#18+
Да, можно просто "слепить" строку и загнать ее в InsertCommand и на этом все. С параметрами InsertCommand сложнее если создать ее в дизайнере, то текст INSERT INTO TEST (rX, rY, rZ) values (?, ?, ?) автоматически создаст параметры заполнять их надо по их индексу: myInsertCommand(2) - это значение rZ (если это MSSQL параметры можно по именам) ... Вопрос: У DataTable есть DefaultValue для каждого поля. Значения по умолчанию вместо незаполненных полей DataTable пойдет? И если да - то все равно ч/з DataAdapter будет удобнее ... |
|||
:
Нравится:
Не нравится:
|
|||
18.11.2004, 14:55 |
|
Обновление данных из dataset в БД
|
|||
---|---|---|---|
#18+
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 полей!!!! о ВЕЛИКИЙ УЖАС!!! :-( ... |
|||
:
Нравится:
Не нравится:
|
|||
18.11.2004, 15:23 |
|
Обновление данных из dataset в БД
|
|||
---|---|---|---|
#18+
То же работаю с Oracle :-)) использую MsOleDbProvider for Oracle (он поддерживает именованные параметры) В дизайнере бросаю таблицу с сервера на форму автоматически генерится DataAdapter со всем джентльменским набором: все комманды, все параметры надо только отредактировать их проблемы: - корректировать WHERE - заголовки полей типа "ЖЖЖ_ДДД" подменяются PARAM1 Если еще и типизированный DataSet создать, там вообще удобно: row из него подсказывет ч/з IntellySence имена полей. (даже копаться с параметрами не надо:-) Надо незабыть про SEQUENCE, чтобы уникальный ключ добавить этому row ... |
|||
:
Нравится:
Не нравится:
|
|||
18.11.2004, 15:36 |
|
Обновление данных из dataset в БД
|
|||
---|---|---|---|
#18+
+ к тому: Совсем необязательно делать Fill DataSet-у Просто добавляем строки, а потом Update. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.11.2004, 15:51 |
|
Обновление данных из dataset в БД
|
|||
---|---|---|---|
#18+
Worobjoff+ к тому: Совсем необязательно делать Fill DataSet-у Просто добавляем строки, а потом Update. Я использую ODP.NET А он дизайнером не поддерживается. только intellisense :-( Так как быть с cmdQuery? Надо для каждого элемента который будем вставлять генерить params? нельзя просто Values() вставить в кавычках имя переменной и чтобы в БД её значение занеслось? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.11.2004, 16:05 |
|
Обновление данных из dataset в БД
|
|||
---|---|---|---|
#18+
А вариант без параметров, динамически созданный SQL почему не подходит? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.11.2004, 16:11 |
|
Обновление данных из dataset в БД
|
|||
---|---|---|---|
#18+
WorobjoffА вариант без параметров, динамически созданный SQL почему не подходит? Ой.. что то я запутался.... как это? приведите пример. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.11.2004, 16:20 |
|
Обновление данных из dataset в БД
|
|||
---|---|---|---|
#18+
Ну, это наверно как у всех: в цикле по полям две строковые преременные 1я - INSERT INTO XXX( 2я - VALUES( 1ю наращиваем именами полей 2ю значениями после цикла слепляем их в одну и кидаем в myCommand.CommandText myCommand.ExecuteNonQuery параметров тут не надо. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.11.2004, 16:27 |
|
Обновление данных из dataset в БД
|
|||
---|---|---|---|
#18+
WorobjoffНу, это наверно как у всех: в цикле по полям две строковые преременные 1я - INSERT INTO XXX( 2я - VALUES( 1ю наращиваем именами полей 2ю значениями после цикла слепляем их в одну и кидаем в myCommand.CommandText myCommand.ExecuteNonQuery параметров тут не надо. А как? Не понял. у меня ведь значения не в массиве храняться а куча переменных с разными именами... ... |
|||
:
Нравится:
Не нравится:
|
|||
18.11.2004, 16:47 |
|
Обновление данных из dataset в БД
|
|||
---|---|---|---|
#18+
Ожидал такой вопрос. Чтобы облегчить себе жизнь с помощью циклов надо какие-то структуры поддерживать. Это - уже особенности языка, на котором пишешь. Тут даже не знаю что посоветовать. - Пытаться как-то объединить переменные в структуру - не сильно увлекаться. иногда тупо переписать 130 if-ов в процедуре бывает быстрее, чем искать изящное решение. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.11.2004, 17:25 |
|
|
start [/forum/topic.php?fid=17&msg=32788310&tid=1353946]: |
0ms |
get settings: |
12ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
71ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
58ms |
get tp. blocked users: |
1ms |
others: | 333ms |
total: | 514ms |
0 / 0 |