Гость
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Не обновляется источник combobox-а. / 10 сообщений из 10, страница 1 из 1
16.01.2016, 11:50
    #39148704
Agapov_stas
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не обновляется источник combobox-а.
Всем доброго времени суток!
На форме комбо с источником BindingSource(bsTypeNameDevice).
При отсутствии в списке значения пытаюсь внести в базу и в комбик соответственно.
Для адаптера прописаны все 4 команды(select,insert,update,delete). Данные в базу записываются, но в DataTable их не видно почему-то.
Вот обработка события потери фокуса комбика:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
Private Sub cmbTypeDevice_LostFocus(sender As Object, e As EventArgs) Handles cmbTypeDevice.LostFocus
        Try
            Dim s As String = cmbTypeDevice.Text
            If cmbTypeDevice.FindStringExact(s) < 0 Then
                With cmdTypeDeviceInsert
                    With .Parameters
                        .AddWithValue("@p1", s)
                    End With
                    conn.Open()
                    Dim i As Integer = .ExecuteNonQuery() '=1, смотрю в БД, новое значение внесено
                    conn.Close()
                    'MsgBox(i)
                End With
            End If
        Catch ex As Exception
            MessageBox.Show(ex.ToString())
        End Try
    'Однако ни в DataTable ни в комбо значение не появилось.
    End Sub



Что не так делаю?
...
Рейтинг: 0 / 0
16.01.2016, 12:22
    #39148722
Agapov_stas
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не обновляется источник combobox-а.
Есть мысли?
...
Рейтинг: 0 / 0
16.01.2016, 12:35
    #39148728
Pallaris
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не обновляется источник combobox-а.
Agapov_stas,

ну и где ты обновляешь содержимое адаптера и комбобокса? вижу только запрос на вставку
...
Рейтинг: 0 / 0
16.01.2016, 12:40
    #39148729
Agapov_stas
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не обновляется источник combobox-а.
Pallaris, спасибо, что ответили.
Делал, однако не помогает:
Код: vbnet
1.
daTypeDevice.Update(dsTypeNameDevice.Tables(0))
...
Рейтинг: 0 / 0
16.01.2016, 12:42
    #39148731
Agapov_stas
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не обновляется источник combobox-а.
Уточню, не помогает в том смысле, что в DataTable новое значение не появляется.
...
Рейтинг: 0 / 0
16.01.2016, 12:50
    #39148732
Agapov_stas
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не обновляется источник combobox-а.
Грубо говоря есть:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
Dim strTypeDeviceSelect As String = "SELECT id,TypeDevice,status FROM tblTypeDevice ORDER BY TypeDevice"
Dim strTypeDeviceInsert As String = "INSERT INTO tblTypeDevice(TypeDevice) VALUES(?)"
Dim strTypeDeviceUpdate As String = "UPDATE tblTypeDevice SET TypeDevice=? WHERE id=?"
Dim strTypeDeviceDelete As String = "UPDATE tblTypeDevice SET status=false WHERE id=?"

Private dsTypeNameDevice As New DataSet

Private daTypeDevice As New OleDbDataAdapter()

Private cmdTypeDeviceSelect As New OleDbCommand(strTypeDeviceSelect, conn)
Private cmdTypeDeviceInsert As New OleDbCommand(strTypeDeviceInsert, conn)
Private cmdTypeDeviceUpdate As New OleDbCommand(strTypeDeviceUpdate, conn)
Private cmdTypeDeviceDelete As New OleDbCommand(strTypeDeviceDelete, conn)

Private dtTypeDevice As New DataTable

Private bsTypeDevice As New BindingSource

With daTypeDevice
                .SelectCommand = cmdTypeDeviceSelect
                .InsertCommand = cmdTypeDeviceInsert
                .UpdateCommand = cmdTypeDeviceUpdate
                .DeleteCommand = cmdTypeDeviceDelete
                .FillSchema(dtTypeDevice, SchemaType.Mapped)
                .Fill(dtTypeDevice)
            End With

With dsTypeNameDevice
                .Clear()
                .Tables.Add(dtTypeDevice)
                .Tables.Add(dtDevice)
                '.Relations.Add("FKTypeNameDevice", dsTypeNameDevice.Tables(0).Columns("id"), dsTypeNameDevice.Tables(1).Columns("idTypeDevice"))
            End With
With bsTypeDevice
                .DataSource = dsTypeNameDevice
                .DataMember = dsTypeNameDevice.Tables(0).TableName
            End With


После чего присваиваю комбику DataSource=bsTypeDevice.
Ну, а то что в комбике, выложил выше.
...
Рейтинг: 0 / 0
16.01.2016, 13:12
    #39148741
Pallaris
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не обновляется источник combobox-а.
Agapov_stasPallaris, спасибо, что ответили.
Делал, однако не помогает:
Код: vbnet
1.
daTypeDevice.Update(dsTypeNameDevice.Tables(0))



Update вызывает методы Insert, Update и Delete.

Тебе нужен Fill. И документация по DataAdapter
...
Рейтинг: 0 / 0
16.01.2016, 13:21
    #39148746
Agapov_stas
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не обновляется источник combobox-а.
Pallaris, спасибо огромное.

P.S. Pallaris,ты находишься в Донецке или просто родной город?Я в получасе езды..(мир тесен)
...
Рейтинг: 0 / 0
16.01.2016, 13:28
    #39148750
Pallaris
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не обновляется источник combobox-а.
Месяца 4 как переехал
...
Рейтинг: 0 / 0
16.01.2016, 13:33
    #39148754
Agapov_stas
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не обновляется источник combobox-а.
Pallaris, ясно.
Еще раз спасибо что ткнул носом.
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Не обновляется источник combobox-а. / 10 сообщений из 10, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]