|
Скопировать Row в DataSet
|
|||
---|---|---|---|
#18+
какими методами или способами лучше воспользоваться чтобы скопировать строку из таблицы dataset и изменив значения некоторых полей этой строки добавить эту копию строки в ту же таблицу бд ? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2004, 15:57 |
|
Скопировать Row в DataSet
|
|||
---|---|---|---|
#18+
ну так лучше воспользоваться своей ХП, которая будет копировать строку по id взятому из dataset и переданному в ХП, или же есть метод скопировать строку в datatable, а потом весь датасет обновить в бд? ? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2004, 22:46 |
|
Скопировать Row в DataSet
|
|||
---|---|---|---|
#18+
>ну так лучше воспользоваться своей ХП, которая будет копировать строку по id взятому из dataset и переданному в ХП, или же есть метод скопировать строку в datatable, а потом весь датасет обновить в бд? плохой вариант. >какими методами или способами лучше воспользоваться чтобы скопировать строку из таблицы dataset и изменив значения некоторых полей этой строки добавить эту копию строки в ту же таблицу бд? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2004, 07:34 |
|
Скопировать Row в DataSet
|
|||
---|---|---|---|
#18+
делаю так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
на строку dsNewSD.Tables("spVeks").Rows.Add(drwNew) ругается - эта строка уже существует в указанной таблице ... |
|||
:
Нравится:
Не нравится:
|
|||
23.05.2004, 14:01 |
|
Скопировать Row в DataSet
|
|||
---|---|---|---|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27.
... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2004, 07:53 |
|
Скопировать Row в DataSet
|
|||
---|---|---|---|
#18+
не получается из UltraGridRow сделать DataRow drwSource = CType(drwSource.ListObject, DataRowView).Row ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2004, 11:19 |
|
Скопировать Row в DataSet
|
|||
---|---|---|---|
#18+
Наоборот все получается :-), просто тогда вверху надо это: Код: plaintext 1.
Код: plaintext 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2004, 11:22 |
|
Скопировать Row в DataSet
|
|||
---|---|---|---|
#18+
тогда ругается на: drwSource = Me.ugVeks.Rows(i) так попробовал: drwSource = CType(Me.ugVeks.Rows(i), DataRowView).Row пишет cannot convert ... ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2004, 12:01 |
|
Скопировать Row в DataSet
|
|||
---|---|---|---|
#18+
А мы же можем вообще от UltraGrid уйти. Для чего он нам? Ведь источником UltraGrid является какой то DataSet (DataTable and etc) . Надо сразу же брать необходимые строки из этого набора данных и все. То есть вы хотите скопировать все строки содержащиеся в определенном UltraGrid? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2004, 12:13 |
|
Скопировать Row в DataSet
|
|||
---|---|---|---|
#18+
да нужно все строки из грида скопировать, я не знаю как это сделать без грида ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2004, 12:16 |
|
Скопировать Row в DataSet
|
|||
---|---|---|---|
#18+
Ну тут можно и через DataView, а также через DataSet. Если известен DataSet и таблица содержащая необходимые записи то очень хорошо. Как называется DataSet. И ведь нам надо давать ID всегда новые - Вопрос: какие? Или они формироваться должны автоматически? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2004, 12:28 |
|
Скопировать Row в DataSet
|
|||
---|---|---|---|
#18+
Да кстати если надо скопировать все строки из определенной таблицы то тогда вообще лучше воспользоваться методом Copy() ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2004, 12:29 |
|
Скопировать Row в DataSet
|
|||
---|---|---|---|
#18+
а нельзя маленький примерчик как в datatable скопировать все строки и id новый нужен в новых строках ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2004, 15:44 |
|
Скопировать Row в DataSet
|
|||
---|---|---|---|
#18+
Как вариант без различных автоинкрементных полей. Идентификатор получаем сами. Дано: dtSource - экземпляр класса DataTable Требуется: получить копию таблицы dtSource. Полученная копия - dtTarget. Тогда: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2004, 15:54 |
|
Скопировать Row в DataSet
|
|||
---|---|---|---|
#18+
мне нужно скопировать их в ту же таблицу ... а в вашем примере же получаем новую таблицу ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2004, 16:15 |
|
Скопировать Row в DataSet
|
|||
---|---|---|---|
#18+
Ну ни что нам не мешает объединить эту таблицу с DataSet DataSet.Merge(dtTarget) ' где DataSet первичный DataSet Только надо помнить о том что: Создается полная копия таблицы со всеми удаленными , модифицированными и добавленными записями с сохранением их RowState. Поэтому здесь будет Exception при попытке изменить ID у удаленной записи. Можно конечно скидывать RowState а потом меняя ID получать строку с RowState = Modified. А можно используя метод Select вообще не брать записи с RowState = Deleted. Вариантов много... Основное меня интересует что вы собираетесь в конечном итоге делать с копированными записями: Добавить их в БД? как у вас задается ID? Используются при этом хранимые процедуры? Какие ? и т.д Потому что этот вариант (как и любой другой :-) ) имеет свое ограничение в использовании. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2004, 20:21 |
|
Скопировать Row в DataSet
|
|||
---|---|---|---|
#18+
id у меня Identity , я добавляю их в таблицу uchveks из прошлого топика про обновление, собственно так и буду их добавлять в бд при обновлении dataset те хранимые процедуры при обновлении и используются мне все равно какой id будет у новых записей вот таким образом не получается, потому как ругается что коллекция расширена и перейти к следующему элементу нельзя Next drwSource Код: plaintext
... |
|||
:
Нравится:
Не нравится:
|
|||
25.05.2004, 10:06 |
|
Скопировать Row в DataSet
|
|||
---|---|---|---|
#18+
пробую merge ... |
|||
:
Нравится:
Не нравится:
|
|||
25.05.2004, 10:07 |
|
Скопировать Row в DataSet
|
|||
---|---|---|---|
#18+
>Id у меня Identity , я добавляю их в таблицу uchveks из прошлого топика про обновление, собственно так и буду их добавлять в бд при обновлении dataset те хранимые процедуры при обновлении и используются мне все равно какой id будет у новых записей Вариант с Copy и Merge без дополнительного программирования вам не подойдет. А этот вариант тоже понятно почему не работает, коллекция меняется вызывается исключение при Next. Сейчас исправлюсь :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
25.05.2004, 10:44 |
|
Скопировать Row в DataSet
|
|||
---|---|---|---|
#18+
Вместо этого кода: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
Попробуйте этот: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
... |
|||
:
Нравится:
Не нравится:
|
|||
25.05.2004, 10:54 |
|
Скопировать Row в DataSet
|
|||
---|---|---|---|
#18+
спасибо! всё получилось! только вот два вопроса: 1. Почему 1000 для нового id? пробовал через AutoIncrement column с выставленым шагом -1 - не получилось, а с тыщей работает! 2. Результат этого копирования сразу отображается в гриде(dataview не использую), а хотелось бы его делать за "кулисами" :) как быть? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2004, 01:12 |
|
Скопировать Row в DataSet
|
|||
---|---|---|---|
#18+
Чтобы заработало через autoincrement column надо модифицировать этот код следующим образом: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2004, 08:04 |
|
|
start [/forum/topic.php?fid=17&msg=32530446&tid=1354115]: |
0ms |
get settings: |
9ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
53ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
63ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 166ms |
0 / 0 |