Как соединить несколько таблиц и заполнить в элемент управления datagridview? - PullRequest
1 голос
/ 12 марта 2010

как соединить несколько таблиц и заполнить их элементом управления datagridview? Что я могу думать, это создать представление, но если есть какие-либо другие лучшие разрешения?

Ответы [ 3 ]

0 голосов
/ 12 марта 2010

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

0 голосов
/ 13 марта 2010

Вместо привязки я бы использовал виртуальный режим. Это позволяет довольно легко получать данные на лету из разных источников. У Microsoft есть руководство по его использованию: Как: реализовать виртуальный режим в элементе управления Windows Forms DataGridView

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

private void my_init_function() {
    datagridview.VirtualMode = true;
    datagridview.CellValueNeeded += new System.Windows.Forms.DataGridViewCellValueEventHandler(datagridview_CellValueNeeded);
}

private void datagridview_CellValueNeeded(object sender, DataGridViewCellValueEventArgs e)
{
    e.Value = get_my_data(e.RowIndex, e.ColumnIndex);
}
0 голосов
/ 12 марта 2010

Представление, вероятно, является лучшим простым решением здесь.

Можете ли вы опубликовать образец модели вашего домена, чтобы мы могли вам помочь?

Одно можно сказать наверняка: «Чем проще, тем лучше». Будь проще! =)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...