|
DataSet Merge проблема...
|
|||
---|---|---|---|
#18+
Привет, народ! Может кто-то встречался с такой проблемой: Есть DataSet dsOrigin с одной немодифицированной строкой и одной таблицей Table[0]. Создаю новый Dataset dsNew с абсолютно идентичной схемой, добавляю в него новую строку и вызываю dsOrigin.Merge(dsNew) . После вызова в dsOrigin появляется 2 таблицы. Где проблема? Или я что-то делаю не правильно? Заранее спасибо Евгений ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2003, 19:56 |
|
DataSet Merge проблема...
|
|||
---|---|---|---|
#18+
dsOrigin.Merge(dsNew) здесь вы опустили два параметра, preserveChanges - по умолчанию false Если он установлен в true, входящие значения при обновлении не будут перезаписывать существующие значения в текущей(current) версии строки. Если false, то будут. MissingSchemaAction - Параметр используется для указания как Merge будет обрабатывать элементы схемы в поступающих данных, которые не являются частью существующего DataSet. Add Add the new schema information to the DataSet and populate the new columns with the incoming values. This is the default. Насколько я понимаю, это и есть причина добавления новой таблицы в DataSet. AddWithKey Add the new schema and primary key information to the DataSet and populate the new columns with the incoming values. Error Throw an exception if mismatched schema information is encountered. Ignore Ignore the new schema information Ignore Ignore the new schema information. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2003, 09:30 |
|
DataSet Merge проблема...
|
|||
---|---|---|---|
#18+
Спасибо большое! ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2003, 17:06 |
|
DataSet Merge проблема...
|
|||
---|---|---|---|
#18+
подскажите - можно ли с помощью dataset.merge всегда добавлять записи в другой датасет у меня пустой датасет ds1, из другой формы заполняю ds2 делаю ds1.merge(ds2, True, MissingSchemaAction.Add) ds1 заполняется, потом мне нужно опять добавить значения из ds2 - опять делаю merge и записи в ds1 перетираются новыми из ds2 или как может по другому добавлять новые записи? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.05.2004, 12:40 |
|
DataSet Merge проблема...
|
|||
---|---|---|---|
#18+
>ds1 заполняется, потом мне нужно опять добавить значения из ds2 - опять делаю merge и записи в ds1 перетираются новыми из ds2 Ну практическое применение merge как раз в этом и состоит Вы лучше расскажите поподробнее в чем задача, желательно со структруой таблиц и кодом. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.05.2004, 14:06 |
|
DataSet Merge проблема...
|
|||
---|---|---|---|
#18+
задача проста: в форме таблица товаров, в эту таблицу выбираю некотрые строки из другой таблицы товаров по нажатию кнопки, выбранные товары из второй таблицы добавляются в первую, а сейчас выходит, что ранее выбранные перетираются новыми ... |
|||
:
Нравится:
Не нравится:
|
|||
17.05.2004, 14:35 |
|
DataSet Merge проблема...
|
|||
---|---|---|---|
#18+
А структуру таблиц можете привести с указанием первичных ключей ... |
|||
:
Нравится:
Не нравится:
|
|||
17.05.2004, 14:41 |
|
DataSet Merge проблема...
|
|||
---|---|---|---|
#18+
И желательно еще конкретный пример, который бы показал что необходимо получить в результате ds1 - такие данные , ds2 - другие и т.д ... |
|||
:
Нравится:
Не нравится:
|
|||
17.05.2004, 14:49 |
|
DataSet Merge проблема...
|
|||
---|---|---|---|
#18+
ds1 изначально пустой, в него выбираю записи из ds2 (заполненный из табл1) затем в ds1 редактируются значения в строках и отправляются в ту же табл1 табл1 id name date .... 1 сок 12.03.2004 2 пиво 12.03.2004 ... |
|||
:
Нравится:
Не нравится:
|
|||
17.05.2004, 16:41 |
|
DataSet Merge проблема...
|
|||
---|---|---|---|
#18+
>ds1 изначально пустой, в него выбираю записи из ds2 (заполненный из табл1) затем в ds1 редактируются значения в строках и отправляются в ту же табл1 Ну я не вижу проблему использования Merge в данном случае: Например, ds1 и ds2 полностью идентичные по своей структуре. 1) сок, пиво, водка в ds2. ds1 пустой. 2) ds1.Merge(ds2) В ds1 теперь сок, пиво, водка 3) Меняем водку на лимонад. В ds1 теперь сок, пиво, лимонад 3) Отправляем изменения в БД myDataAdapter.Update(ds1) ds1.AcceptChanges() ... |
|||
:
Нравится:
Не нравится:
|
|||
18.05.2004, 07:58 |
|
DataSet Merge проблема...
|
|||
---|---|---|---|
#18+
так мне надо не менять водку на лимонад, а добавлять! т.е сначало выбрал в ds1 из ds2 сок, пиво, водка а потом ещё добавил из того же ds2 лимонад и стал список сок, пиво, водка, лимонад а сейчас при втором выборе в ds2 лимонада он один и будет в ds1 при ds1.merge(ds2) ... |
|||
:
Нравится:
Не нравится:
|
|||
18.05.2004, 09:37 |
|
DataSet Merge проблема...
|
|||
---|---|---|---|
#18+
Можно попробовать ImportRow или LoadDataRow. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.05.2004, 10:14 |
|
DataSet Merge проблема...
|
|||
---|---|---|---|
#18+
Привидите код: Как создаете, заполняете ds2, ds1? Интересует любой код где фигурируют эти объекты. Если у вас в ds2 изначально сок, пиво, лимонад, водка то при merge в пустой ds1 и попадут сразу все 4 наименования. Я пока не понял механизм каким образом сначала туда попадает сок, пиво, водка. А затем только лимонад? То есть здесь поподробнее. Если же у вас в ds2 изначально только сок, пиво, водка. То интересует каким образом потом появляется там лимонад? Затем непонятно если в базе данных в таблице 1 содержатся все наименования, то куда должны сохраняться выбранные наименования или они никуда не сохраняются? Что используется в качестве БД? Поле "Ид" в таблице 1 это первичный ключ? Пока вопросов больше чем ответов, так как вы не приводите интересующий код, а гадать я не умею. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.05.2004, 11:41 |
|
DataSet Merge проблема...
|
|||
---|---|---|---|
#18+
ну код ты уже видел массив datarow для dataset.merge >>Я пока не понял механизм каким образом сначала туда попадает сок, пиво, водка. А затем только лимонад? То есть здесь поподробнее. выбираю строки в гриде и передаю их вдругой грид (видно из ссылки выше) потом решаю ещё добавить туда лимонад! Затем непонятно если в базе данных в таблице 1 содержатся все наименования, то куда должны сохраняться выбранные наименования или они никуда не сохраняются? просто меняются некоторые поля, например - дата, количество, ... и эти записи обновляются в той же самой таблице откуда выбраны! бд - sql server, id - ключ ... |
|||
:
Нравится:
Не нравится:
|
|||
18.05.2004, 11:52 |
|
DataSet Merge проблема...
|
|||
---|---|---|---|
#18+
Ну ситуация проясняется. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9.
Теперь понятны ваши проблемы. У вас все время создается новый пустой датасет идентичныей по структуре исходному: Код: plaintext 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
18.05.2004, 12:09 |
|
DataSet Merge проблема...
|
|||
---|---|---|---|
#18+
CType(myForm, FormNewSd).dsNewSD.Merge(dataRows) в dsNewSD у меня много таблиц, и когда я делаю dsNewSD.Merge(dataRows) а потом Me.ugVeks.DataSource = Me.dsNewSD то ultragrid заполняется совершенно другим набором данных, из другой datatable dsNewSD как можно при dsNewSD.Merge указать таблицу? или как решить проблему? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.05.2004, 14:26 |
|
DataSet Merge проблема...
|
|||
---|---|---|---|
#18+
А если указать что имено показывать ultragridу: Код: plaintext 1. 2.
И конечно рекомендую убранную строчку с Clone, вставить например в Load формы. Основная идея чтобы все таки клонировать структуру с DataSet - источника, но при этом делать это один раз, а не каждый раз когда выделенные записи из UltraGrid добавляются к dsNewSd. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.05.2004, 14:40 |
|
|
start [/forum/topic.php?fid=17&msg=32521525&tid=1354121]: |
0ms |
get settings: |
12ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
44ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
others: | 12ms |
total: | 153ms |
0 / 0 |