Я рекомендую создавать общие методы, ориентированные на задачу и использующие простые элементы SQL, без необходимости писать sql. Я использую Subsonic для доступа к данным в MS SQL. Однако вы можете сделать его не зависящим от базы данных, например, DAL. Эти примеры могут быть настроены на ORM или, тем не менее, вы получаете доступ к данным. Я бы порекомендовал создать статический класс, который сузит его до конкретной задачи.
Например, если у вас есть таблица данных для заполнения и вы знаете представление, таблицу, сохраненный процесс для ее заполнения, создайте функцию, аналогичную следующему коду c #:
public static void BindDataGridViewWhere(DataGridView dgv, string tablename, string selectList, string whereClause)
{
Query qQuery = new Query(tablename);
qQuery.SelectList = selectList;
qQuery.WHERE(whereClause);
DataSet dsDGV = qQuery.ExecuteDataSet();
dgv.DataSource = dsDGV.Tables[0];
dgv.RowHeadersVisible = false;
}
Затем, в init страницы или что-то в этом роде, простой однострочный вызов этого метода, передающий представление данных сетки с оператором where, что вы хотите отобразить и как в select, а также whereclause и вы связаны.
BindDataGridViewWhere (dgvCars, "tbl_Cars", "CarName", "Color, mdl as Model", "Color = 'blue'");
Это прекрасно работает для любого объекта, с которым вы часто связываетесь, такого как выпадающие списки, списки, таблицы данных и все остальное. Тогда для других, которые не подходят под эту модель, есть метод, который просто возвращает набор данных. Таким образом, если вам нужно взаимодействовать с ним перед его отображением, вы можете выполнить дополнительную бизнес-логику и т. Д.
Мне нравится этот подход, потому что, если вы хотите переключить платформы данных, у вас есть 1 место для внесения изменений. Таким способом вы можете создать экран очень быстро.