2014-10-15 2 views
0

Я создаю проект Forms в VS2013. Я добавил DataGridView в свою форму и установил таблицу «employee» в качестве источника данных (исходный источник проекта - это .mdf-файл, созданный в SSMS 2008 R2). Один из столбцов в таблице сотрудников - это идентификатор отдела.Как добавить столбец DataGridView из второй таблицы в datasource

Вместо отображения идентификатора отдела, очевидно, я хочу отобразить название отдела из таблицы отделов.

Все, что я вижу, я могу сделать, добавив новый столбец, используя столбцы той же таблицы.

Я изучил использование базы данных в качестве источника данных, а затем добавил столбцы из разных таблиц, но это тоже не похоже на правильный подход.

Как это сделать? Возможно ли это с помощью диалогов/наглядных пособий, или это можно сделать только в коде?

+0

Если его mdf вы можете запросить результаты, которые вам нужны ... – Codexer

+0

В принципе, вы можете перевести свой id ... случай, когда 1 администратор, когда 2 игрушки и так далее. Это небольшой пример. Затем верните запрос с тем, что вы запросили в таблице, и установите его как источник данных ... – Codexer

+0

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

ответ

0

Я бы предложил использовать код DataGridViewComboBoxColumn для перевода идентификатора отдела.

Посмотрите на этот фрагмент:

Dim cmbCol As DataGridViewComboBoxColumn = New DataGridViewComboBoxColumn() With { 
     .HeaderText = "Department", 
     .DataPropertyName = "DepartmentID", 
     .Name = "Department", 
     .DisplayMember = "DepartmentName", 
     .ValueMember = "DepartmentID", 
     .DataSource = myDepartmentDataTable, 
     .DisplayStyle = DataGridViewComboBoxDisplayStyle.Nothing 
    } 

    myDGV.Columns.RemoveAt(departmentColumnIndex) 
    myDGV.Columns.Insert(departmentColumnIndex, cmbCol) 

Чтобы сделать эту работу, вам нужно DataTable с одной колонкой «DepartmentID» и другой колонке «DepartmentName». Установка стиля отображения на «Nothing» делает столбец похожим на обычный текстовый столбец вместо столбца combobox. Последние две строки удаляют обычный текстовый столбец, который вы получаете из ваших исходных данных, и заменяете его новым столбцом combobox.

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

Смежные вопросы