|
|
|
Помогите! Проблема с разрешением Concurrency.
|
|||
|---|---|---|---|
|
#18+
Здравствуйте, Ниже приведен код, отвечающий за разрешение Concurency конфликтов.. Т.е. мы получаем массив строк, в которых возникли конфликты, и для каждого даем пользователю возможность выбрать - сохранить ли его изменеиня, или не сохранять. Проблема в том, что dataSet11.Merge(row_to_merge); не работает, строка не смерживается с датасетом... dataSet11.Merge(tempItemsDataTable); - работает, но в этом случае с дата сетом смерживаются все конфликтные строки из БД, а не по одной, как требуется. Код dataSet11.Merge(row_to_merge, true, MissingSchemaAction.Add); sqlDataAdapter1.Update(dataSet11); тоже не работает, база не обновляется. Хотя dataSet11.Merge(tempItemsDataTable, true, MissingSchemaAction.Add); sqlDataAdapter1.Update(dataSet11); опять же работает. Но обновляется вся база, а нужно чтоб пользователь мог принимать решение для каждой конфликтной строки индивидуально... Что в этом коде не так? Буду рад любой помощи... private void button4_Click(object sender, EventArgs e) { sqlDataAdapter1.ContinueUpdateOnError = true; sqlDataAdapter1.Update(dataSet11); if (dataSet11.test_table.HasErrors == true) { // Берем данные из базы sqlDataAdapter1.Fill(tempItemsDataTable); // получаем массив строк с ошибками DataSet1.test_tableRow[] error_rows = (DataSet1.test_tableRow[])dataSet11.test_table.GetErrors(); foreach (DataSet1.test_tableRow error_row in error_rows) { DataSet1.test_tableRow row_in_db = tempItemsDataTable.FindByid(error_row.id); string s = "Original: " + error_row["name", DataRowVersion.Original].ToString() + "\n" + "Current in DB: " + row_in_db.name + "\n" + "Proposed: " + error_row["name", DataRowVersion.Current].ToString() + "\n" + "Do you still want to update table with the proposed value?"; DataSet1.test_tableRow[] row_to_merge = { row_in_db }; DialogResult response = MessageBox.Show(s, "Concurrency Exception", MessageBoxButtons.YesNo); if (response == DialogResult.Yes) { dataSet11.Merge(row_to_merge, true, MissingSchemaAction.Add); sqlDataAdapter1.Update(dataSet11); } else { dataSet11.Merge(row_to_merge); } } } } ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.05.2007, 13:00 |
|
||
|
|

start [/forum/topic.php?fid=17&msg=34514491&tid=1352811]: |
0ms |
get settings: |
11ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
117ms |
get topic data: |
15ms |
get forum data: |
4ms |
get page messages: |
40ms |
get tp. blocked users: |
1ms |
| others: | 236ms |
| total: | 448ms |

| 0 / 0 |
