Обновление Combobox

Язык Visual Basic на платформе .NET.

Модераторы: Ramzes, Sebas

krukovis84
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 108
Зарегистрирован: 04.08.2009 (Вт) 11:16
Откуда: Кочевник

Обновление Combobox

Сообщение krukovis84 » 29.06.2010 (Вт) 21:59

Всем привет!

Есть Combobox, привязанный через BindingSourse к таблице.
Привязан он с надеждой, что после добавления в таблицу строки методом TableAdapter.Insert он сам автоматически считает данные из таблицы и отобразит их выпадающем списке. Но этого почему то не происходит.
Combobox.Refresh не помогает....

Если остановить отладку и снова запустить, то в комбобокс данные из таблицы все таки отображаются.

Подскажите, пожалуйста, что в таком случае нужно после TableAdapter.Insert сделать, чтобы комбобокс обновил свой список?

krukovis84
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 108
Зарегистрирован: 04.08.2009 (Вт) 11:16
Откуда: Кочевник

Re: Обновление Combobox

Сообщение krukovis84 » 29.06.2010 (Вт) 23:45

Проблема поменялась....

Я переписал код. Вношу данные теперь так:
Код: Выделить всё
Dim newpersonageRow As SettingsDataSet.PersonageRow

        newpersonageRow = frmChengeWinName.SettingsDataSet.Personage.NewPersonageRow

        newpersonageRow.Name = txtName.Text
        newpersonageRow.Login = txtLogin.Text
        newpersonageRow.Password = txtPassword.Text

        frmChengeWinName.SettingsDataSet.Personage.Rows.Add(newpersonageRow)


        Me.PersonageTableAdapter.Update(frmChengeWinName.SettingsDataSet.Personage)


В combobox'е теперь нормально отображается, сразу после внесения.

Но если сразу же пытаюсь удалить эту запись (без перегрузки формы) таким кодом:
Код: Выделить всё
Dim personageRow As SettingsDataSet.PersonageRow
        personageRow = SettingsDataSet.Personage.FindByКод(comboPersonage.SelectedValue)

        If comboPersonage.SelectedValue = 0 Then
            MsgBox("Не выбрано ни одного персонажа.")
            Exit Sub
        ElseIf comboPersonage.SelectedValue = -1 Then
            MsgBox("Укажите еще раз персонажа")
            Exit Sub
        End If

        personageRow.Delete()
        ' Save the updated row to the database
        Me.PersonageTableAdapter.Update(Me.SettingsDataSet.Personage)


Определяет значение comboPersonage.SelectedValue = -1, т.е. я делаю вывод что комбобокс не получает из базы о ключе строки.
Комбобокс настроен отображать Name из таблицы Personage набора данных Settings, а передавать в SelectedValue - ключ.

Подскажите куда копать пожалуйста...

krukovis84
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 108
Зарегистрирован: 04.08.2009 (Вт) 11:16
Откуда: Кочевник

Re: Обновление Combobox

Сообщение krukovis84 » 01.07.2010 (Чт) 18:50

А я думаю что это все молчат? Никто ничего подсказать не может?
Вопрос то легкотня :D

Вот ни за что не догадаетесь почему ошибку выдавал :D Потому что у меня имя одного из полей Password! Видимо Аксцесс воспринимает это слово как ключевое и его глючить начинает. Я уже эмпирическим путем до этого дошел. Без всяких конструкторов написал функции добавления и удаления данных по примеру из гугла. Все поля ставлю как в примере Field1, Field 2 и т.д. - все работает как часы. Как только ставлю свои названия полей - все болт на 48, не вворачивается и все тут. Начал менять по очереди название полей с Fild1 на Name и т.д., все то же работает. Последнее поле Field3 на Password поменял - все опять болт :D.

Не используйте в названии полей слово "Password", товарищи! :mrgreen:


Вернуться в Visual Basic .NET

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 31

    TopList