Форум программистов, компьютерный форум, киберфорум
C#: Базы данных, ADO.NET
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.58/19: Рейтинг темы: голосов - 19, средняя оценка - 4.58
0 / 0 / 1
Регистрация: 01.10.2012
Сообщений: 43
1

Нужно чтоб в ComboBox от одной таблицы отображались значения из соответствующего поля другой таблицы

01.03.2015, 13:46. Показов 3764. Ответов 25
Метки нет (Все метки)

Нужно чтоб в combobox от одной таблицы отображались значения из соответствующего поля другой таблицы. Настроил отображения этих значений через "Combobox Задачи". Как сделать, чтоб отображались только те, значения, которые нужны? Например, есть поле "поставщик", и надо чтоб в combobox отображался только счет относящийся к этому "поставщику". Собственно, счета и поставщики указаны в другой таблице. Как это настроить или установить связи между таблицами? Подскажите, пожалуйста.
0
Миниатюры
Нужно чтоб в ComboBox от одной таблицы отображались значения из соответствующего поля другой таблицы   Нужно чтоб в ComboBox от одной таблицы отображались значения из соответствующего поля другой таблицы  
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.03.2015, 13:46
Ответы с готовыми решениями:

Запрос, возвращающий значения поля одной таблицы и складывающий эти значения в поле другой таблицы
доборого дня всем, подскажите процедуру которая будет возвращать значение поля одной таблицы и...

Получение поля таблицы, при выборе соответствующего из comboBox
Подскажите, пожалуйста на конкретном примере. Есть БД с полями: "Nazvanie_otelya", "Nomer_otelya"...

Сложный запрос? Поля из одной таблицы, и поля из другой таблицы, но...
Вот так мы делаем выборку из основной таблицы table1: SELECT t1.ID, t1.f2, t1.f3 FROM table1 t1...

Как в поле ID одной таблицы записать значение поля ID другой таблицы
В БД две таблицы: 1)USERS с полями ID_User, Name, Password. В нее записываются пользователи...

25
1987 / 1158 / 444
Регистрация: 20.12.2014
Сообщений: 3,087
01.03.2015, 18:38 2
То есть вам нужно, чтобы при выборе поставщика, в комбобоксе была коллекция счетов только этого поставщика? Если так, то напишите: в каком контроле происходит выбор поставщика, в каких полях какой таблицы какой БД находятся эти данные: поставщики и счета?
0
0 / 0 / 1
Регистрация: 01.10.2012
Сообщений: 43
01.03.2015, 19:08  [ТС] 3
chumich,
0
Миниатюры
Нужно чтоб в ComboBox от одной таблицы отображались значения из соответствующего поля другой таблицы  
1987 / 1158 / 444
Регистрация: 20.12.2014
Сообщений: 3,087
01.03.2015, 19:14 4
Понял. Последний вопрос: у каждого поставщика, всё-таки, один счет или несколько?
0
0 / 0 / 1
Регистрация: 01.10.2012
Сообщений: 43
01.03.2015, 19:15  [ТС] 5
chumich, один

Добавлено через 10 секунд
chumich, хотел сделать это так:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
SqlCommand sqlcommand = new SqlCommand("SELECT [Расчетный счет] FROM SuppliersBook WHERE Поставшик=InAcc.Поставщик;", ConToBase);
 
            SqlDataReader DataReader;
            ConToBase.Open();
            DataReader = sqlcommand.ExecuteReader();
 
            while (DataReader.Read())
            {
               string Acc = DataReader.GetValue(0).ToString();
                счетComboBox.Items.Add(Acc);
            }
 
            ConToBase.Close();
[/C]но выбивается исключение The multi-part identifier "InAcc.Поставщик" could not be bound.
0
1987 / 1158 / 444
Регистрация: 20.12.2014
Сообщений: 3,087
01.03.2015, 19:19 6
Ход мыслей правильный, но немного по-другому надо, напишу - выложу. В БД у поля со счетами какой тип данных? И еще: в накладной в текстбокс впечатывается поставщик или как?
0
0 / 0 / 1
Регистрация: 01.10.2012
Сообщений: 43
01.03.2015, 19:28  [ТС] 7
chumich, у счетов тип данных везде numeric(20,0). В таблицу "InAcc" поставщик вместе со всем остальным кроме поля "Счет" вписывается с помощью "INSERT INTO..." по кнопке с другой формы, а поле счет по умолчанию null получается
0
1987 / 1158 / 444
Регистрация: 20.12.2014
Сообщений: 3,087
01.03.2015, 20:04 8
Попробуйте так (я заменил некоторые названия, потому что лучше не использовать названия похожие на зарезервированные слова):
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
SqlCommand sqlcom= new SqlCommand("SELECT [Расчетный счет] FROM SuppliersBook WHERE Поставшик='"+ поставщикTextBox.Text +"';", ConToBase);
 
            SqlDataReader MyReader; 
            ConToBase.Open();
            MyReader = sqlcomm.ExecuteReader();
 
            while (MyReader.Read())
            {
               string Acc = MyReader.GetValue(0).ToString();
                счетComboBox.Items.Add(Acc);
            }
 
            ConToBase.Close();
0
0 / 0 / 1
Регистрация: 01.10.2012
Сообщений: 43
01.03.2015, 20:34  [ТС] 9
chumich, не отображается в combobox ничего. в чем может быть причина?
0
1987 / 1158 / 444
Регистрация: 20.12.2014
Сообщений: 3,087
01.03.2015, 20:50 10
Если ошибок не выдает поставьте, чтобы не гадать, MessageBox.Show("соединение есть") в 6 строку, MessageBox.Show("цикл работает") после 8 строки перед Асс и MessageBox.Show(Acc) после Асс. И отпишитесь, когда проверите.
0
0 / 0 / 1
Регистрация: 01.10.2012
Сообщений: 43
01.03.2015, 21:25  [ТС] 11
chumich, срабатывает только MessageBox.Show("соединение есть")
0
1987 / 1158 / 444
Регистрация: 20.12.2014
Сообщений: 3,087
01.03.2015, 23:09 12
Azatot, вы один к одному код скопировали, который я написал? Если да, то уберите в 5 строке из sqlcomm одну букву m. И попробуйте снова.
0
1442 / 1115 / 344
Регистрация: 11.04.2011
Сообщений: 2,614
02.03.2015, 05:51 13
Azatot, Загляните в FAQ по ADO.NET. Вам нужен 3-ий вопрос. Игнорируете в вопросе все, что связано с DataGridView. Привязка идет через BindingSource'ы, а там на примере показано, как это делается.
0
0 / 0 / 1
Регистрация: 01.10.2012
Сообщений: 43
02.03.2015, 06:32  [ТС] 14
chumich, "m" я убрал, конечно. Иначе бы VS не запустил сборку
0
1987 / 1158 / 444
Регистрация: 20.12.2014
Сообщений: 3,087
02.03.2015, 12:12 15
Azatot, если второе сообщение не появляется, значит Reader не читает данные. Попробуйте изменить строку кода и посмотрите: появится ли второе сообщение:
C#
1
SqlCommand sqlcom= new SqlCommand("SELECT * FROM SuppliersBook;", ConToBase);
0
0 / 0 / 1
Регистрация: 01.10.2012
Сообщений: 43
02.03.2015, 16:39  [ТС] 16
chumich, вот смотрите, какая ситуация:
вчера пробовал заменить
T-SQL
1
"SELECT [Расчетный счет] FROM SuppliersBook WHERE Поставшик='"+ поставщикTextBox.Text +"';"
на
T-SQL
1
"SELECT [Расчетный счет] FROM SuppliersBook WHERE Поставшик LIKE ('%"+ поставщикTextBox.Text +"%');"
Цикл работал, но опять же выводились все счета подряд.
Сегодня попробовал то, что вы посоветовали:
Цитата Сообщение от chumich Посмотреть сообщение
SqlCommand sqlcom= new SqlCommand("SELECT * FROM SuppliersBook;", ConToBase)
Цикл работает и с этой строкой, но он выводил не все счета подряд, а все значения первого столбца таблицы(столбец типа ID).
Я подумал все дело в
C#
1
string Acc = MyReader.GetValue(0).ToString();
и поменял на
C#
1
GetValue(2)
2 - это как-раз индекс столбца счетов. И да, стали выводиться счета, но снова все подряд.
Как все можно поправить? Может есть еще идеи?
0
kodv
02.03.2015, 16:46
  #17

Не по теме:

Интересно, надолго хватит еще этого упорства в изобретании велосипеда, вместо того, чтобы почитать FAQ и сделать все просто и правильно

0
0 / 0 / 1
Регистрация: 01.10.2012
Сообщений: 43
02.03.2015, 16:51  [ТС] 18
kodv, упорства много, т.к. курсовую запилить надо по-любому. а почитав FAQ, я не особо понял ту схему, потому что я видимо слишком тугой для этого. в принципе, если покажете по-простому, как к моему случаю что применить, буду премного благодарен
0
1442 / 1115 / 344
Регистрация: 11.04.2011
Сообщений: 2,614
02.03.2015, 17:01 19
Azatot, вы не предоставили данные, чтобы можно было показать на вашем случае. Сделайте скриншот формы в дизайнере и скриншот датасета в дизайнере. Там на самам деле 2 свойства у одного BindingSource поменять надо. главное знать, у какого BindingSource и какие свойства.
0
0 / 0 / 1
Регистрация: 01.10.2012
Сообщений: 43
02.03.2015, 17:13  [ТС] 20
kodv, надеюсь я правильно понял, что нужно
0
Миниатюры
Нужно чтоб в ComboBox от одной таблицы отображались значения из соответствующего поля другой таблицы   Нужно чтоб в ComboBox от одной таблицы отображались значения из соответствующего поля другой таблицы  
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.03.2015, 17:13

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

При выборе элемента из любой таблицы нужно, чтоб отображались элементы из 2 других таблиц
При выборе элемента из любой таблицы нужно, чтоб отображались элементы из 2 других таблиц....

Можно ли как нибудь добавить данные из 1 поля 1 таблицы в pickllist другого поля другой таблицы?
Добавить данные в picklist полю ФИО, чтоб получился выпадающий список Бред конечно, ноо... Может...

Добавление в поля одной таблицы дынных из другой
Всем привет! Делаю дипломную "База данных аптеки". БД делаю с помощью Paradox 7. Есть три таблицы:...

Размещение данных из поля одной таблицы в 4-х полях другой
Здравствуйте! Есть задача: разместить в полях "автор1", "автор2", "автор3", "автор4" таблицы...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.