powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Индексы элементов в ComboBox
14 сообщений из 14, страница 1 из 1
Индексы элементов в ComboBox
    #38546024
CvetikZ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В проекте динамически заполняю ComboBox из БД

strSQL = "SELECT id, name FROM nStations ORDER BY id"
где id - код элемента ; используется в качестве индекса для облегчения последующего обращения к БД;
name - наименование элемента;
...
While DATAREADER.Read() = True

cmb_Stations.Items.Insert(DATAREADER.GetValue(0), DATAREADER.GetString(1))

End While

Но в жизни все течет, все меняется и случилось так, что некоторые элементы списка были удалены, и нумерация элементов получилась не сквозная (1,2,3,6,8 ...) , соотв. ComboBox ругается, как только доходит до первого пропущенного номера.

Как с этим бороться?? (изменение нумерации в БД не предлагать, т.к. порушатся все связанные таблицы)
...
Рейтинг: 0 / 0
Индексы элементов в ComboBox
    #38546046
bazile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CvetikZ, 1) сделай простой класс:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
class IdAndValue
{
    public int Id;
    public string Value;

    public override string ToString()
    {
        return Value;
    }
}


2) Добавляй в ComboBox элементы типа IdAndValue
Код: c#
1.
cmb_Stations.Items.Add(new IdAndValue { Id = DATAREADER.GetInt32(0), Value = DATAREADER.GetString(1)} );


3) Используй значение поля Id после выбора элемента
...
Рейтинг: 0 / 0
Индексы элементов в ComboBox
    #38546052
CvetikZ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
bazile,

А на VB2010 это можно перевести (я не волшебник, я только учусь... :-) )
...
Рейтинг: 0 / 0
Индексы элементов в ComboBox
    #38546057
bazile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CvetikZ,

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Class IdAndValue
    Public Dim Id As Integer
    Public Dim Value As String

    Public Overrides Function ToString() As String
        Return Value
    End Function
End Class

' ..................

cmb_Stations.Items.Add(New IdAndValue With { .Id = DATAREADER.GetInt32(0), .Value = DATAREADER.GetString(1)} )



P.S. Изучай синтаксис C# чтобы хотя бы уметь читать его. Далеко не всегда примеры даются на обоих языках.
...
Рейтинг: 0 / 0
Индексы элементов в ComboBox
    #38546059
CvetikZ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
bazile,

Спасибо!!

Просто работаю в VB6, осваиваю VB2010, немного касалась С++.
С классами пока не работала, но буду изучать :-)
...
Рейтинг: 0 / 0
Индексы элементов в ComboBox
    #38546119
sphinx_mv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CvetikZВ проекте динамически заполняю ComboBox из БД

strSQL = "SELECT id, name FROM nStations ORDER BY id"
где id - код элемента ; используется в качестве индекса для облегчения последующего обращения к БД;
name - наименование элемента;
...
While DATAREADER.Read() = True

cmb_Stations.Items.Insert(DATAREADER.GetValue(0), DATAREADER.GetString(1))

End While

Но в жизни все течет, все меняется и случилось так, что некоторые элементы списка были удалены, и нумерация элементов получилась не сквозная (1,2,3,6,8 ...) , соотв. ComboBox ругается, как только доходит до первого пропущенного номера.

Как с этим бороться?? (изменение нумерации в БД не предлагать, т.к. порушатся все связанные таблицы) Data Binding a Windows Forms ComboBox or ListBox Control
...
Рейтинг: 0 / 0
Индексы элементов в ComboBox
    #38546274
CvetikZ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sphinx_mv,

Спасибо, но это не совсем то (а точнее, совсем не то...)
...
Рейтинг: 0 / 0
Индексы элементов в ComboBox
    #38546302
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Прочитал <Но в жизни все течет, все меняется и случилось так>- живо цинично представил месячные у СУБДа
Ну какой тут лайфхак? - только стена...
...
Рейтинг: 0 / 0
Индексы элементов в ComboBox
    #38546356
Pallaris
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CvetikZСпасибо, но это не совсем то (а точнее, совсем не то...)

А если еще раз почитать?

DataSource, DisplayMember, ValueMember
...
Рейтинг: 0 / 0
Индексы элементов в ComboBox
    #38546651
sphinx_mv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CvetikZsphinx_mv,

Спасибо, но это не совсем то (а точнее, совсем не то...)Сам себе удивляюсь... :)
По ошибке скопировалась "не та" ссылка к "правильному" направлению поиска...

Повторяю еще раз: Bind a Windows Forms ComboBox or ListBox Control to Data
Ну, и если совсем точное направление: Data Binding and Windows Forms . Читать раздел "Common Scenarios That Employ Data Binding" - обратить особое внимание на пункт "Lookup Table".
...
Рейтинг: 0 / 0
Индексы элементов в ComboBox
    #38546658
sphinx_mv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PallarisCvetikZСпасибо, но это не совсем то (а точнее, совсем не то...)

А если еще раз почитать?

DataSource, DisplayMember, ValueMemberПлюс SelectedItem, SelectedIndex, SelectedValue
...
Рейтинг: 0 / 0
Индексы элементов в ComboBox
    #38546668
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sphinx_mv,
что хочет афтар, посмотрел этот бред,
1 хочет получить идентификатор записи в базе что бы потом получить всю запись полностью
вполне может быть уместен этот идиотизм
2 получить записи по форину тут уже теплее.
Так items может принимать любые типы объектов, у которых tostring "заточенный" на видюху
и все осталось инкапсулировать всю выборку в этих объектах что бы не плодить грязь и излишние буквы.
но это сложнее исполнить так как нужна глюкоза..
...
Рейтинг: 0 / 0
Индексы элементов в ComboBox
    #38546712
sphinx_mv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Где-то в степиsphinx_mv,
что хочет афтар, посмотрел этот бред,
1 хочет получить идентификатор записи в базе что бы потом получить всю запись полностью
вполне может быть уместен этот идиотизм
2 получить записи по форину тут уже теплее.Что раз, что два - одно и то же... С точки зрения доступа к данным...
Где-то в степиТак items может принимать любые типы объектов, у которых tostring "заточенный" на видюху
и все осталось инкапсулировать всю выборку в этих объектах что бы не плодить грязь и излишние буквы."Лисапед" (с квадратным колесами) изобретать лучше, чем использовать готовое универсальное встроенное решение? :)
Где-то в степино это сложнее исполнить так как нужна глюкоза..Не надо глюкозы.
Нужно употреблять то, что заточено на привязку практически любых данных к визуальным (и не только к визуальным) компонентам WinForms. DataBinding - это то, что доктор прописал...
...
Рейтинг: 0 / 0
Индексы элементов в ComboBox
    #38551074
CvetikZ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Где-то в степиПрочитал <Но в жизни все течет, все меняется и случилось так>- живо цинично представил месячные у СУБДа
Ну какой тут лайфхак? - только стена...

На бОльшее соображалки не хватило??
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Индексы элементов в ComboBox
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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