С Новым годом! Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.90/29: Рейтинг темы: голосов - 29, средняя оценка - 4.90
1 / 1 / 1
Регистрация: 30.09.2010
Сообщений: 61

combobox 2 столбца и сохранение значения

16.03.2011, 15:58. Показов 5368. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день!
Есть код
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
private void btnTest_Click(object sender, EventArgs e)
{
            string connectionStringTest = "SERVER=GW;DATABASE=VSQL;Trusted_Connection=True";
            SqlConnection cs = new SqlConnection(connectionStringTest);
            SqlDataAdapter da = new SqlDataAdapter("SELECT * from tbl_worker order by LastName", cs);
            DataTable dt = new DataTable();
 
            da.Fill(dt);
 
            for (int i = 0; i < dt.Rows.Count; i++)
            {
                cmbTest.Items.Add(dt.Rows[i]["LastName"]);
               
            }
        }
Данные из столбца LastName прекрасно выводятся в комбобокс cmbTest. Но при выборе никаких значений не сохраняется. Как лучше реализовать вывод выбранного значения в MessageBox, например.
И как осуществить вывод в комбобокс значений из двух и более столбцов, например: LastName и FirstName, так чтобы получилось, например Иванов Иван?
Заранее спасибо, за ответы.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
16.03.2011, 15:58
Ответы с готовыми решениями:

Сохранение значения в combobox программно
Здравствуйте, добавляю значение в comboBox через textBox но после выхода значение удаляется как мне его сохранить не прибегая к базам и...

Обновление столбца listview при выборе значения в combobox
Подскажите, пожалуйста, как сделать? чтобы при выборе соответствующего значения в combobox обновлялся столбец в listview

Передать значение столбца из таблицы БД при смене значения comboBox'a
Народ такая цель нужно что бы при смене значения ComboBox менялось и отображалось значение textBox. Вот хотел сделать это таким образом ...

8
 Аватар для Weks91
66 / 65 / 18
Регистрация: 15.06.2009
Сообщений: 185
16.03.2011, 17:56
используй свойства DisplayMember и ValueMember
C#
1
2
3
cmbTest.DataSource = dt;
cmbTest.DisplayMember = "LastName"; //то что должно отображаться
cmbTest.ValueMember = "ID";  //поле, для определения того, что выбрали, например Primary Key в таблице
в cmbTest.SelectedValue() будет содержимое ValueMember выбранной записи
0
1 / 1 / 1
Регистрация: 30.09.2010
Сообщений: 61
17.03.2011, 09:15  [ТС]
Переделал так:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
string connectionString = "Data Source=GW;Initial Catalog=VSQL;Integrated Security=True";
            string CommandText = "SELECT * FROM tbl_worker";
            SqlConnection conn = new SqlConnection(connectionString);
            conn.Open();
            SqlCommand myCommand = conn.CreateCommand();
            myCommand.CommandText = CommandText;
            SqlDataAdapter dataAdapter = new SqlDataAdapter();
            dataAdapter.SelectCommand = myCommand;
            DataSet ds = new DataSet();
            dataAdapter.Fill(ds, "tbl_worker");
            ds.Tables["tbl_worker"].Columns.Add("fio", typeof(string), "Lastname+' '+Firstname+' '+Secondname");
            conn.Close();
            cmbTest.DataSource = ds.Tables["tbl_worker"];
            cmbTest.ValueMember = "id_sotrudnic";
            cmbTest.DisplayMember = "fio";
Значения заносятся. но теперь сразу же заполняется комбобокс первым значением из отбора. Как сделать, чтобы если пользователь ничего не выбрал, то и поле бы считалось не заполненным?
0
181 / 107 / 13
Регистрация: 22.03.2010
Сообщений: 456
17.03.2011, 09:40
Цитата Сообщение от Tr@$ter Посмотреть сообщение
Переделал так:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
string connectionString = "Data Source=GW;Initial Catalog=VSQL;Integrated Security=True";
            string CommandText = "SELECT * FROM tbl_worker";
            SqlConnection conn = new SqlConnection(connectionString);
            conn.Open();
            SqlCommand myCommand = conn.CreateCommand();
            myCommand.CommandText = CommandText;
            SqlDataAdapter dataAdapter = new SqlDataAdapter();
            dataAdapter.SelectCommand = myCommand;
            DataSet ds = new DataSet();
            dataAdapter.Fill(ds, "tbl_worker");
            ds.Tables["tbl_worker"].Columns.Add("fio", typeof(string), "Lastname+' '+Firstname+' '+Secondname");
            conn.Close();
            cmbTest.DataSource = ds.Tables["tbl_worker"];
            cmbTest.ValueMember = "id_sotrudnic";
            cmbTest.DisplayMember = "fio";
Значения заносятся. но теперь сразу же заполняется комбобокс первым значением из отбора. Как сделать, чтобы если пользователь ничего не выбрал, то и поле бы считалось не заполненным?
Не понятно что надо очистить.
Если надо очистить cmbTest.Text, это одно, а если выбранный индекс, то тоже можно, но смысл в этом?
Для того, чтобы показывать пользователю, что он ничего пока не выбрал, иногда используют запись в базе данных, например, "Не выбрано", которая идет первой, но этот стиль считаю неправильным.
0
1 / 1 / 1
Регистрация: 30.09.2010
Сообщений: 61
17.03.2011, 10:11  [ТС]
Цитата Сообщение от Nukutu Посмотреть сообщение
Не понятно что надо очистить.
Если надо очистить cmbTest.Text, это одно, а если выбранный индекс, то тоже можно, но смысл в этом?
Для того, чтобы показывать пользователю, что он ничего пока не выбрал, иногда используют запись в базе данных, например, "Не выбрано", которая идет первой, но этот стиль считаю неправильным.
Добавил:
C#
1
cmbTest.Text = null;
Но в таблицу всё равно попадает "0". Хотелось бы вообще пустое поле. Как?
0
181 / 107 / 13
Регистрация: 22.03.2010
Сообщений: 456
17.03.2011, 10:55
Цитата Сообщение от Tr@$ter Посмотреть сообщение
Добавил:
C#
1
cmbTest.Text = null;
Но в таблицу всё равно попадает "0". Хотелось бы вообще пустое поле. Как?
Ноль попадает сюда id_?sotrudnic
Ну можно принудительно перед записью выставить
C#
1
id_?sotrudnic = null
если база данных позволяет.
А как ты собираешься с пустым идентификатором работать?
0
1 / 1 / 1
Регистрация: 30.09.2010
Сообщений: 61
17.03.2011, 11:22  [ТС]
Цитата Сообщение от Nukutu Посмотреть сообщение
Ноль попадает сюда id_?sotrudnic
Ну можно принудительно перед записью выставить
C#
1
id_?sotrudnic = null
если база данных позволяет.
А как ты собираешься с пустым идентификатором работать?
В access, если выбор не произведён, то в sql значений никаких не ставиться (в базе в ячейке NULL).
Как из C# реализовать так же?
0
181 / 107 / 13
Регистрация: 22.03.2010
Сообщений: 456
17.03.2011, 12:10
Цитата Сообщение от Tr@$ter Посмотреть сообщение
В access, если выбор не произведён, то в sql значений никаких не ставиться (в базе в ячейке NULL).
Как из C# реализовать так же?
Вопрос не в C#.
Идентификатор в базе данных для уникальности, как правило.
Если задать условие что идентификатор может быть null, то смысла в такой базе данных нет.
Так как записей с null в идентификаторе можно насохранять сколько угодно и потом работать с такой базой данных нельзя будет нормально.
Может я не правильно понимаю?
Возможно тебе надо другое условие, если пользователь "не выбрал" в комбобоксе, то запись в базу данных не сохранять.
0
1 / 1 / 1
Регистрация: 30.09.2010
Сообщений: 61
17.03.2011, 13:48  [ТС]
Цитата Сообщение от Nukutu Посмотреть сообщение
Возможно тебе надо другое условие, если пользователь "не выбрал" в комбобоксе, то запись в базу данных не сохранять.
Да именно это мне и нужно.

Добавлено через 33 минуты
Пока так:
C#
1
string cmbValue = cmbTest.Text == "" ? "NULL" : "'" + cmbTest.SelectedValue + "'";
И в запрос закинул.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
17.03.2011, 13:48
Помогаю со студенческими работами здесь

Сохранение значения из ComboBox
В общем есть ComboBox в него вводется имя, и надо что бы после выхода из программы оно сохранилось и при запуске программы было видно в...

Сохранение введенного значения в ComboBox
На пользовательской форме в ComboBox вводятся данные. Но после перезапуска книги введенные данные затираются. Как сделать, чтобы после...

Сохранение значения в combobox программно
Здравствуйте добавляю значение в combox через textbox но при выходе из программы значение удаляется.Как мне его сохранить(код пожалуйста). ...

в список combobox вывести значения одного столбца
Здравствуйте! Подскажите как например в список combobox вывести значения одного столбца &quot;Имя&quot; таблицы &quot;Сотрудники&quot;? спс

Значения ячеек определенного столбца из dbgrid в combobox
Здравствуйте, помогите пожалуйста, нужно из DBgrid из определенного столбца (IDProblem) вывести все значения в ComboBox, спасибо. Связь...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит токи на L и напряжения на C в установ. режимах до и. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru