DataGridView и набор данных лучшие практики разочарования - PullRequest
1 голос
/ 08 февраля 2010

Я использую c # 2008 winforms.

Мне очень неприятно пытаться найти наилучший практический способ использования наборов данных и представлений сетки в приложениях winforms в целом для достижения желаемых результатов.

По сути, я хочу (и это общая методология, которую я хочу использовать во всех моих приложениях) 1. заполнить набор данных из таблицы SQL 2. Заполните обзор данных из набора данных. 3. для некоторых столбцов в сетке данных будут рассчитаны результаты из полей набора данных 4. отредактируйте данные в сетке данных и синхронизируйте изменения с источником набора данных. 5. изменения в сетке данных обновляются только до источника базы данных с помощью хранимых процедур в базе данных, я никогда не использую метод sqlAdaptor.update 6. Я хочу, чтобы нижний колонтитул суммированных итогов столбцов в таблице данных 7. Я хочу, чтобы в столбце отображались итоговые суммы по всем строкам

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

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

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

Заранее спасибо

Ответы [ 2 ]

1 голос
/ 08 февраля 2010

«Я могу делать все эти отдельные вещи но я очень расстроен, чтобы найти мой код заканчивается повсюду и отличается по погоде я хочу все выше или только некоторые из них. "

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

  • Презентация

    Веб-формы, HTML-страницы и т. Д.

  • Уровень бизнес-логики (BLL)

    Бизнес-объекты, объекты бизнес-правил

  • Уровень доступа к данным (DAL)

    Объекты репозитория (ответственные за доступ к вашему массиву данных), Модель (все, что вы наборы данных / таблицы-адаптеры и т. Д.)

"У меня не может быть пользовательских столбцов и пользовательских строки в таблице данных и т. д. и т. д. "

Если одному или нескольким вашим сетевым представлениям требуются некоторые данные из TableAdapter (Model (DAL)), но с настроенными столбцами или строками, ваш слой BLL должен здесь соответствовать цели. Это должно быть примерно так:

AccountGridViewClient (Презентация) -> AccountsManager (BLL)
-> AccountsRepository (DAL) -> AccountsTableAapter -> DB

AccountGridViewAdmin (Презентация) -> AccountsManager (BLL)
-> AccountsRepository (DAL) -> AccountsTableAapter -> DB

Посмотрите также эту тему .

Надеюсь, это поможет

0 голосов
/ 21 декабря 2013

Чтобы добавить Asad, вам было бы намного легче, если бы у вас была бизнес-логика, в которой вы будете выполнять необходимые вычисления, т.е. получать данные из базы данных -> заполнять коллекцию, которую вы позже привязываете к представлению данных.

Вы можете редактировать заголовок, выполнив что-то вроде

`dgv.Columns [" Имя "]. AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells; dgv.Columns ["Имя"]. HeaderText = "Имя";

       dgv.Columns["Quantity"].AutoSizeMode =   DataGridViewAutoSizeColumnMode.ColumnHeader;
        dgv.Columns["Quantity"].HeaderText = "Quantity";


        dgv.Columns["TotalPrice"].AutoSizeMode = DataGridViewAutoSizeColumnMode.ColumnHeader;
        dgv.Columns["TotalPrice"].HeaderText = "Total Price";
        dgv.Columns["TotalPrice"].DefaultCellStyle.Format = "0.00";`

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

Что касается проверки нижнего колонтитула, то эта ссылка: Добавление нижнего колонтитула в представление данных

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