Почему не происходит изменений в базе?

.DLL
Дата: 18.02.2005 15:49:50
Доброй пятницы!
Чей то я не пойму.
Сделал в форме табличку настроил SqlDataAdapter. Хочу внести изменения в базу данных (добавить или обновить запись). Вношу новую запись в таблицу на форме, далее нажимаю на кнопку, которая выполняет
Me.SqlDataAdapter1.Update(Me.DsProvider1.Фото)
Лезу в базу, а там записей не появилось.
Пробую добавить запись снова в табличку, только посде добавления строки выделяю другую запись в этой же табличке. Снова обновляю, но на этот раз строчка появляется в базе. Получается после того как ввел строку нужно переместиться на другую, чтобы обновить или добавить запись в базу.
кузя
Дата: 18.02.2005 15:58:31
.DLL
Получается после того как ввел строку нужно переместиться на другую, чтобы обновить или добавить запись в базу.
достаточно завершить редактирование текущей записи (EndEdit/EndCurrentEdit).
при переходе на другую запись это делается автоматом.
mr_Andrey
Дата: 18.02.2005 15:59:08
перед вызовом update для sqldataadapter попробуй завершить редактирование,чтоб строка получила статус измененной.
сделать это можно с помощью currencymanager.
просто update не находит в твоем dataset модифицированных строк.
.DLL
Дата: 18.02.2005 16:09:22
Сделал
Dim crm As CurrencyManager = Me.BindingContext(Me.grdCar.DataSource, Me.grdCar.DataMember)
        crm.EndCurrentEdit()

        Try
            Me.SqlDataAdapter1.Update(Me.DsProvider1.Фото)
        Catch ex As Exception
            MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error)
            Exit Sub
        End Try
После этого строчка добавилась в базу, но картинка нет. (я вставляю в ячейку таблицы фотографию)
Таблица имеет три поля, Код_фото (счетчик), Код_машины, Фото.
При загрузке формы делаю Для кода машины
fmPhotos_1.DsProvider1.Фото.Код_МашиныColumn.DefaultValue = KodCar
Получается добавляется новая строка например:
1_____10_____пусто
2_____10_____пусто
и т д

А вот если перед сохранением переместиться на другую строчку, то изображение успешно попадает в базу.
кузя
Дата: 18.02.2005 16:30:05
попробуй для редактируемой записи вызвать EndEdit:
((DataRowView)crm.Current).Row.EndEdit();
кузя
Дата: 18.02.2005 16:39:36
если и это не поможет, то можно попытаться обманом заставить внести все изменения в DataRow, что нибудь типа: crm.Position=crm.Position
.DLL
Дата: 18.02.2005 16:43:09
кузя
попробуй для редактируемой записи вызвать EndEdit:
((DataRowView)crm.Current).Row.EndEdit();


Попробовал
Dim crm As CurrencyManager = Me.BindingContext(Me.grdCar.DataSource, Me.grdCar.DataMember)
        Dim row As DataRowView = CType(crm.Current, System.Data.DataRowView)
        ' и с crm.EndCurrentEdit() и без
       
        row.EndEdit()
        Try
            Me.SqlDataAdapter1.Update(Me.DsProvider1.Фото)
...
Запись добавляется в базу, но без изображения :(
Какая то туфта :/
.DLL
Дата: 18.02.2005 16:44:34
кузя
если и это не поможет, то можно попытаться обманом заставить внести все изменения в DataRow, что нибудь типа: crm.Position=crm.Position

Я об этом тоже уже думал, но как-то нехорошо получится. Выделение будет скакать по форме. Но, наверное, придется так делать.
А больше нет никаких уловок?
кузя
Дата: 18.02.2005 16:49:18
еще непосредственно на саму запись, а не на view для нее:
row.Row.EndEdit()
кузя
Дата: 18.02.2005 16:54:29
какой грид используешь ?
как у тебя прибиндена картинка к полю ?