Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Как принудительно обновить одну запись из Dataset?
|
|||
|---|---|---|---|
|
#18+
Всем привет, у меня есть некий запрос основывающийся на 2 таблицах. Вот мучаюсь с такой проблемой - из-за того, что данный запрос необновляемый, то у меня не получается непосредственно вносить изменения в Dataset и такой способ не срабатывает Dim crm As CurrencyManager = Me.BindingContext(fmCity_1.grdTable.DataSource, fmCity_1.grdTable.DataMember) Dim row As DataRowView = CType(crm.Current, System.Data.DataRowView) row("Город") = Me.teCity.Text row("Страна") = Me.teCountry.Text row("Регион") = Me.cbRegion.SelectedIndex crm.EndCurrentEdit() fmCity_1.SqlDataAdapter1.Update(fmCity_1.DsCity1)Возникает ошибка при редактировании Региона, т.к. имеется справочник регионов. Тогда я стал делать по-другому. Написал ХП для insert, update и т.п и обновляю запись иначе. fmCity_1.SqlDataAdapter1.UpdateCommand.Parameters("@Cit").Value = Me.teCity.Text fmCity_1.SqlDataAdapter1.UpdateCommand.Parameters("@Reg").Value = Me.cbRegion.SelectedIndex fmCity_1.SqlDataAdapter1.UpdateCommand.Parameters("@Countr").Value = Me.teCountry.Text fmCity_1.SqlDataAdapter1.UpdateCommand.Parameters("@Kod").Value = Kod.ToString fmCity_1.SqlConnection1.Open() fmCity_1.SqlDataAdapter1.UpdateCommand.ExecuteNonQuery() fmCity_1.SqlConnection1.Close()Все бы ничего, но в таблице запись не обновляется (не сказал, что для ребактирования записи использую другую форму, а форма с таблицей это fmCity_1). Перегружать весь датасет расточительно. Подскажите как сделать тоже, но красиво или как обновить известную запись в датасете? Огромное человеческое пасиб! P.S. Исправьте если я не на том форуме поместил. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2004, 11:11 |
|
||
|
Как принудительно обновить одну запись из Dataset?
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2004, 11:25 |
|
||
|
Как принудительно обновить одну запись из Dataset?
|
|||
|---|---|---|---|
|
#18+
Ну и что? Это я и писал. Так как там написано можно только с обновляемыми представлениями или таблицами делать, а у меня это не так. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2004, 11:26 |
|
||
|
Как принудительно обновить одну запись из Dataset?
|
|||
|---|---|---|---|
|
#18+
Somebody knows? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2004, 13:29 |
|
||
|
Как принудительно обновить одну запись из Dataset?
|
|||
|---|---|---|---|
|
#18+
Там ответ на этот вопрос: Перегружать весь датасет расточительно. Подскажите как сделать тоже, но красиво или как обновить известную запись в датасете? Очевидно тогда надо пояснить на пальцах что вы хотите получить, утрировано например так: Структура БД такая-то, структура DataSet такая-то. Записи в DataSet эти, нажимаю это, выполняется то, хочу получить такой результат и т.д. Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2004, 13:43 |
|
||
|
Как принудительно обновить одну запись из Dataset?
|
|||
|---|---|---|---|
|
#18+
Ок. Есть две таблицы Города(Код_города int, Название varchar, Страна varchar, Регион int) и Регионы(Код_региона int, Регион varchar). Таблица заполняется данными на основе представления. Представление простое, оно показывает вместо неинформативного числового кода региона его название. Собственно вот он: SELECT dbo.City.Код_города, dbo.City.Город, dbo.City.Регион, dbo.City.Страна, dbo.Регионы.Рагион FROM dbo.City INNER JOIN dbo.Регионы ON dbo.City.Регион = dbo.Регионы.Код_региона Дак вот, по двойному щелчку на строке DataGrid открывается форма для редактирования записи. После внесения изменений пользователь нажимает сохранить и вносит изменения в базу. Как я это делаю написано выше вот таким цветом. Данные сохраняются в базе. Но, как я понимаю, из-за того что обновление строки я делаю в обход Dataset (т.к. регион нельзя обновить, потому что это представление на основе двух таблиц), мне не удается произвести его обновление в таблице таким образом, чтобы обновилась эта единственная запись, которую я только что исправил. Меня интересует как обновить одну исправленную запись в Datagrid? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2004, 14:17 |
|
||
|
Как принудительно обновить одну запись из Dataset?
|
|||
|---|---|---|---|
|
#18+
Если знаешь первичный ключ редактированной записи, то можно создать новый датасет newDataset, заполнить его этой одной записью, а потом сделать oldDataset.Merge(newDataset.YouTable) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2004, 18:04 |
|
||
|
Как принудительно обновить одну запись из Dataset?
|
|||
|---|---|---|---|
|
#18+
А из текущего датасета нужно удалить чтоли эту мою запись? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2004, 18:09 |
|
||
|
Как принудительно обновить одну запись из Dataset?
|
|||
|---|---|---|---|
|
#18+
А из текущего датасета нужно удалить чтоли эту мою запись? При merge ничего удалять не надо. Но не думаю что здесь дойдет до merge. Дак вот, по двойному щелчку на строке DataGrid открывается форма для редактирования записи. После внесения изменений пользователь нажимает сохранить и вносит изменения в базу. Как я это делаю написано выше вот таким цветом. Данные сохраняются в базе. Но, как я понимаю, из-за того что обновление строки я делаю в обход Dataset (т.к. регион нельзя обновить, потому что это представление на основе двух таблиц), мне не удается произвести его обновление в таблице таким образом, чтобы обновилась эта единственная запись, которую я только что исправил. Не понял почему у вас не получается обновить текущую запись этим же способом: Код: plaintext 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2004, 20:50 |
|
||
|
Как принудительно обновить одну запись из Dataset?
|
|||
|---|---|---|---|
|
#18+
Да и от первоначального варианта с LoadDataRow я не отказываюсь (пока :-) ). Хотя полная структуру DataSet неясна, в частности не понятно есть у вас PK по dbo.City.Код_города или нет. Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2004, 22:21 |
|
||
|
Как принудительно обновить одну запись из Dataset?
|
|||
|---|---|---|---|
|
#18+
row("Город") = Me.teCity.Text row("Страна") = Me.teCountry.Text row("Регион") = Me.cbRegion.SelectedIndex row("Код_города") = bla-bla-bla проходит, а изменение региона вызывает ошибку Additional information: Cannot set Регион. Про РК, как я понимаю вам нужно сквзать является ли dbo.City.Код_города ключевым - да. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2004, 10:37 |
|
||
|
Как принудительно обновить одну запись из Dataset?
|
|||
|---|---|---|---|
|
#18+
row("Город") = Me.teCity.Text row("Страна") = Me.teCountry.Text row("Регион") = Me.cbRegion.SelectedIndex row("Код_города") = bla-bla-bla проходит, а изменение региона вызывает ошибку Additional information: Cannot set Регион. Про РК, как я понимаю вам нужно сквзать является ли dbo.City.Код_города ключевым - да. А вы уверены что у вас есть такое поле "Регион" ? может так: Код: plaintext 1. Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2004, 10:56 |
|
||
|
Как принудительно обновить одну запись из Dataset?
|
|||
|---|---|---|---|
|
#18+
Наверно я вас, SA, совсем запутал. Вот этот запрос используется для заполнения Dataset SELECT City.Код_города, City.Город, City.Страна, Регионы.Регион, City.Регион AS Код_региона FROM City INNER JOIN Регионы ON City.Регион = Регионы.Код_региона row("Город") = Me.teCity.Text row("Страна") = Me.teCountry.Text row("Код_региона") = Me.cbRegion.SelectedIndex row("Код_города") = bla-bla-bla row("Регион") = bla-bla-bla ' Здесь ошибка Полюбому на регионе ошибка. И как ей не быть, это строковое поле нельзя редактировать оно из другой таблицы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2004, 11:08 |
|
||
|
Как принудительно обновить одну запись из Dataset?
|
|||
|---|---|---|---|
|
#18+
Это я понял, и вы при заполнении DataSet используете этот запрос: Код: plaintext 1. 2. 3. А фрагмент вы привели то как это организовано в MS SQL. Что скажет этот код, после заполнения DsCity1? Код: plaintext 1. 2. Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2004, 11:18 |
|
||
|
Как принудительно обновить одну запись из Dataset?
|
|||
|---|---|---|---|
|
#18+
Да похоже в этом и причина. Я использую этот запрос для заполнения. Таблиц - 1 Полей - 5 Что же нужно предпринять? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2004, 11:29 |
|
||
|
Как принудительно обновить одну запись из Dataset?
|
|||
|---|---|---|---|
|
#18+
Ну по моим расчетам: Код: plaintext 1. 2. 3. 4. Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2004, 11:34 |
|
||
|
Как принудительно обновить одну запись из Dataset?
|
|||
|---|---|---|---|
|
#18+
Sa, где вы живете, я вам поставлю памятник при жизни. Сколько у вас терпения. Все работает. Это гребаный Рагион ( Боже, сколько я угрохал времени. Несказанно вам благодарен за помощь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2004, 11:44 |
|
||
|
|

start [/forum/topic.php?fid=20&gotonew=1&tid=1438385]: |
0ms |
get settings: |
11ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
42ms |
get topic data: |
9ms |
get first new msg: |
5ms |
get forum data: |
2ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
| others: | 256ms |
| total: | 399ms |

| 0 / 0 |
