Модераторы: gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> ComboBox в dataGridView с БД Oracle, Вывод инфы в ComboBox с каким-то условие 
:(
    Опции темы
Avariya
Дата 21.6.2011, 23:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 25
Регистрация: 16.2.2010

Репутация: нет
Всего: нет



Здравствуйте, пишу некий учебный проект. Хотелось бы как-то организовать вывод в ComboBox что содержится в dataGridView варианты выбора значений, только тех что отвечают именно этой строке.
Тоесть, легче, наверное, объяснить в примере.
У меня в БД Oracle есть табличка студентов, у каждого студента есть ИД академ. группы в которой он учится. В академ. группы есть поле староста. Хотелось бы как-то сделать так, что-бы ComboBox предлагал для выбора старосты группы ИС-81 только студентов этой группы, возможно ли это как-то организовать?
P.S. Windows Forms
P.P.S. Колонки в dataGridView обьявляю вручную(снимаю галочку автозаполнения), делаю это для колонки старосты вот так:
Код

dataGridView1.AutoGenerateColumns = false;
                    dataGridView1.DataSource = dt;
                    OleDbCommand getClients = new OleDbCommand("SELECT id_student as id, surname as name FROM Student", conn);
                    da.SelectCommand = getClients;
                    DataTable clientsDT = new DataTable();
                    da.Fill(clientsDT);
DataGridViewColumn newColumn;
DataGridViewComboBoxColumn combo = new DataGridViewComboBoxColumn();
                    combo.DataSource = courseDT;
                    combo.DisplayMember = "name";
                    combo.ValueMember = "id";
                    newColumn = combo;
                    newColumn.DataPropertyName = "id_g";
                    newColumn.Name = "Группа";
                    newColumn.ContextMenuStrip = new ContextMenuStrip();
                    dataGridView1.Columns.Add(newColumn);
                    newColumn = null;

Если забыл что-то в коде, не пинайте, копировал с двух частей программы.

Это сообщение отредактировал(а) Avariya - 22.6.2011, 00:08
PM MAIL   Вверх
VirusUZ
  Дата 22.6.2011, 13:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 161
Регистрация: 9.4.2010
Где: Узбекистан, Навои й обл.

Репутация: нет
Всего: -2



Код

combobox1.parent=datagrid1[1,1];

--------------------
Virus
PM MAIL   Вверх
Avariya
Дата 22.6.2011, 21:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 25
Регистрация: 16.2.2010

Репутация: нет
Всего: нет



Цитата(VirusUZ @ 22.6.2011,  13:41)
Код

combobox1.parent=datagrid1[1,1];

Я, к сожалению, не очень понимаю вашу идею решения проблемы. Вы предлагаете для каждого  комбобокса создавать свой датагрид? Тогда как мне взять айдишник того поля для которого был выбран комбобокс?
PM MAIL   Вверх
jonie
Дата 23.6.2011, 10:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 8
Всего: 118



Avariya, это узбекский бот - не обращайте на него внимание.

Вот набрасал пример полный (на форме dataGridView и Combobox):
Код

        private void Form1_Load(object sender, EventArgs e)
        {
            var ds = new DataSet();
            var dtMaster = ds.Tables.Add("master");
            dtMaster.Columns.Add("MasterId", typeof(int));
            dtMaster.Columns.Add("Name", typeof(string));

            var dtSub = ds.Tables.Add("sub");
            dtSub.Columns.Add("SubId", typeof(int));
            dtSub.Columns.Add("Name", typeof(string));
            dtSub.Columns.Add("MasterId", typeof(int));

            var releation = ds.Relations.Add("master-sub", dtMaster.Columns["MasterId"], dtSub.Columns["MasterId"], true);
            

            //fill sample data
            var mr1 = dtMaster.NewRow();
            mr1[0] = 1;
            mr1[1] = "Master1";
            dtMaster.Rows.Add(mr1);

            var mr2 = dtMaster.NewRow();
            mr2[0] = 2;
            mr2[1] = "Master2";
            dtMaster.Rows.Add(mr2);

            var sr1 = dtSub.NewRow();
            sr1[0] = 1; sr1[1] = "Sub1Master1"; sr1[2] = 1;
            dtSub.Rows.Add(sr1);

            var sr2 = dtSub.NewRow();
            sr2[0] = 1; sr2[1] = "Sub2Master2"; sr2[2] = 2;
            dtSub.Rows.Add(sr2);

            var masterBindingSource = new BindingSource();
            masterBindingSource.DataMember = "master";
            masterBindingSource.DataSource = ds;

            comboBox1.ValueMember = "MasterId";
            comboBox1.DisplayMember = "Name";
            comboBox1.DataSource = masterBindingSource;


            var detailsBindingSource = new BindingSource();
            detailsBindingSource.DataSource = masterBindingSource;
            detailsBindingSource.DataMember = "master-sub";

            dataGridView1.DataSource = detailsBindingSource;
        }



--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
Avariya
Дата 23.6.2011, 13:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 25
Регистрация: 16.2.2010

Репутация: нет
Всего: нет



Цитата(jonie @ 23.6.2011,  10:24)
Avariya, это узбекский бот - не обращайте на него внимание.

Вот набрасал пример полный (на форме dataGridView и Combobox):
Код

        private void Form1_Load(object sender, EventArgs e)
        {
            var ds = new DataSet();
            var dtMaster = ds.Tables.Add("master");
            dtMaster.Columns.Add("MasterId", typeof(int));
            dtMaster.Columns.Add("Name", typeof(string));

            var dtSub = ds.Tables.Add("sub");
            dtSub.Columns.Add("SubId", typeof(int));
            dtSub.Columns.Add("Name", typeof(string));
            dtSub.Columns.Add("MasterId", typeof(int));

            var releation = ds.Relations.Add("master-sub", dtMaster.Columns["MasterId"], dtSub.Columns["MasterId"], true);
            

            //fill sample data
            var mr1 = dtMaster.NewRow();
            mr1[0] = 1;
            mr1[1] = "Master1";
            dtMaster.Rows.Add(mr1);

            var mr2 = dtMaster.NewRow();
            mr2[0] = 2;
            mr2[1] = "Master2";
            dtMaster.Rows.Add(mr2);

            var sr1 = dtSub.NewRow();
            sr1[0] = 1; sr1[1] = "Sub1Master1"; sr1[2] = 1;
            dtSub.Rows.Add(sr1);

            var sr2 = dtSub.NewRow();
            sr2[0] = 1; sr2[1] = "Sub2Master2"; sr2[2] = 2;
            dtSub.Rows.Add(sr2);

            var masterBindingSource = new BindingSource();
            masterBindingSource.DataMember = "master";
            masterBindingSource.DataSource = ds;

            comboBox1.ValueMember = "MasterId";
            comboBox1.DisplayMember = "Name";
            comboBox1.DataSource = masterBindingSource;


            var detailsBindingSource = new BindingSource();
            detailsBindingSource.DataSource = masterBindingSource;
            detailsBindingSource.DataMember = "master-sub";

            dataGridView1.DataSource = detailsBindingSource;
        }

Ладно, спасибо, буду разбираться, хотя, если честно, то уже не актуально  smile 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
stab
mr.DUDA
Exception

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, stab, mr.DUDA, Exception.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Базы данных под .NET | Следующая тема »


 




[ Время генерации скрипта: 0.0479 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.