DataSet.GetChanges - сохранить обновленную запись в таблице, отличной от исходной. - PullRequest
0 голосов
/ 04 июня 2010

Я выполняю операцию над набором данных, содержащим данные из таблицы SQL с именем Test_1, а затем получаю обновленные записи с помощью функции DataSet.GetChanges (DataRowState.Modified). Затем я пытаюсь сохранить набор данных, содержащий обновленные записи, в другой таблице, отличной от исходной (таблица называется Test и имеет ту же структуру, что и Test_1), используя следующую инструкцию: sqlDataAdapter.Update (changesDataSet, "Test");

Я получаю следующую ошибку: при обновлении не удалось найти TableMapping ['Test'] или DataTable 'Test'

Я новичок в ado.net и даже не знаю, возможно ли это. Любой совет приветствуется.

Просто чтобы предоставить немного контекста. Задания ETL импортируют данные во временную таблицу с такой же структурой, что и у оригинала, но с суффиксом _jobid. Сразу после того, как механизм правил выполняет проверку перед обновлением исходной таблицы.

Ответы [ 2 ]

0 голосов
/ 07 июня 2010

, если test и test_1 содержат абсолютно равные значения, это работает:

  DataSet1 ds = new DataSet1();
            var da = new DataSet1TableAdapters.DepositTableAdapter();
            var da1 = new DataSet1TableAdapters.Deposit_1TableAdapter();
            da.Fill(ds.Deposit);

            foreach (DataSet1.DepositRow row in ds.Deposit.Rows)
            {
                if (row.ID == 3)
                {
                    row.Amount++;
                }
                foreach (var c in row.ItemArray)
                {
                    Console.Write(c);

                }
                Console.WriteLine("");
            }

            Console.WriteLine(ds.Deposit.GetChanges(System.Data.DataRowState.Modified).Rows);


            var updateTable = new DataSet1.Deposit_1DataTable();

            foreach (DataSet1.DepositRow row in ds.Deposit.GetChanges(System.Data.DataRowState.Modified).Rows)
            {
                updateTable.ImportRow((System.Data.DataRow)row);

            }
            da1.Update(updateTable);

Тест_1 всегда пуст после того, как с ним работал механизм правил?Есть ли в test_1 и test абсолютно точные строки?

Я надеюсь, что смогу оказать дополнительную помощь, если вы ответите на мои вопросы.

0 голосов
/ 04 июня 2010

почему бы вам не создать триггер обновления вместо таблицы, который будет вставлен в другую таблицу?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...