Как получить несколько сеток, таких как панель результатов SQL-сервера

У меня снова проблемы с моим проектом :(

Фронтенд — C#

Мне нужно поддерживать многострочные запросы, такие как сервер MS SQL, и когда эти запросы выполняются, естественно, будет несколько наборов результатов.

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

Должен ли я привязать его к сетке данных? Если да, то как я могу привязать несколько таблиц к сетке данных? и будут ли автоматически создаваться полосы прокрутки и столбцы?

Если я не понимаю, пожалуйста, дайте мне знать, и я постараюсь быть более ясным.

PS: Если кто-нибудь знает, как это можно сделать с помощью XtraGridControl в devexpress, это было бы здорово! :D


person Shrayas    schedule 09.03.2010    source источник
comment
+1 У вас интересный вопрос. +1 На оба ответа получил. Я не вижу другого пути, чтобы все было просто.   -  person Will Marcouiller    schedule 11.03.2010


Ответы (3)


Возможно, вам нужен элемент управления System.Windows.Forms.FlowLayoutPanel (см. FlowLayoutPanel@msdn)

Он доступен в .NET v2 и более поздних версиях.

flowLayoutPanel1.FlowDirection = FlowDirection.TopDown;
....
// for each result...
flowLayoutPanel1.Controls.Add(newGrid);

Я использовал его раньше для достижения аналогичного эффекта. Однако я не пытался изменить размер элементов внутри него, они были фиксированы по высоте (изменены размеры по ширине, чтобы соответствовать родителю).

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

PK :-)

person Paul Kohler    schedule 14.03.2010
comment
Позвольте мне попробовать это! Надеюсь, что это работает ! :( На данный момент, если у меня есть «n» сеток для отображения, я закрепляю n-1 сетку сверху и n-ю сетку в качестве заполнения. Это тоже меня не устраивает :( - person Shrayas; 15.03.2010
comment
Нет, не работает :( Только 2 сетки идут сверху вниз, а затем начинается 3-я сетка рядом с 1-й! :( - person Shrayas; 15.03.2010
comment
Попробуйте повозиться с Width сетками. По памяти мы смотрели событие re-size на дочернем элементе, а затем упорядочивали его в зависимости от parent.ClientWidth... - person Paul Kohler; 15.03.2010
comment
Кстати, я только что сделал это с вкладками... см. minisqlquery.codeplex.com - далее идет только текст мой список - я нахожу несколько сеток немного беспорядочными, если их больше трех... - person Paul Kohler; 15.03.2010
comment
хм.. интересно! :D Разберусь и вернусь ! :D Ну, раз ты мне так помогла :) Награда твоя! :D УРА! - person Shrayas; 15.03.2010

вы можете установить панель с полосами прокрутки в своей форме и программно добавить количество datagrid в зависимости от количества источников данных. Просто добавьте элемент управления сеткой данных на определенную панель.

person Xstahef    schedule 09.03.2010
comment
да я думал об этом. Но должен быть лучший способ сделать это. Это не кажется мне правильным путем. - person Shrayas; 09.03.2010
comment
@Skun: это лучший способ сделать это. - person Gabriel McAdams; 11.03.2010

Студия управления SQL не отображает все результаты в одной сетке, если это не запрос UNION. Добавление нескольких сеток в одну прокручиваемую панель — правильный способ сделать это, если только вы не хотите разбивать их на отдельные вкладки.

person Brendon    schedule 11.03.2010
comment
Да, я знаю это. Я имею в виду, КАК добавить несколько сеток в одну прокручиваемую панель?! Пожалуйста помоги. - person Shrayas; 11.03.2010
comment
Просто создайте новую сетку во время выполнения (GridControl myGrid = new GridControl()) и назначьте ее коллекции элементов управления вашей панели. - person Brendon; 16.03.2010