Трехслойная архитектура в C# .NET - Слой доступа к базе данных
ОГЛАВЛЕНИЕ
Страница 4 из 6
Слой доступа к базе данных
Слой доступа к базе данных (DAO) строит запрос на основе параметров, полученных от слоя бизнес-логики, и передает их классу dbConnection для выполнения. И происходит возврат результатов из класса dbConnection в слой бизнес-логики.
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Data.SqlClient;
namespace ThreeLayerDemo.Core
{
public class UserDAO
{
private dbConnection conn;
/// <constructor>
/// конструктор UserDAO
/// </constructor>
public UserDAO()
{
conn = new dbConnection();
}
/// <method>
/// Получение электронного письма пользователя по имени или фамилии и возврат таблицы данных
/// </method>
public DataTable searchByName(string _username)
{
string query = string.Format("select * from [t01_user]
where t01_firstname like @t01_firstname or t01_lastname
like @t01_lastname ");
SqlParameter[] sqlParameters = new SqlParameter[2];
sqlParameters[0] = new SqlParameter("@t01_firstname", SqlDbType.VarChar);
sqlParameters[0].Value = Convert.ToString(_username);
sqlParameters[1] = new SqlParameter("@t01_lastname", SqlDbType.VarChar);
sqlParameters[1].Value = Convert.ToString(_username);
return conn.executeSelectQuery(query, sqlParameters);
}
/// <method>
/// Получение электронного письма пользователя по идентификатору и возврат таблицы данных
/// </method>
public DataTable searchById(string _id)
{
string query = "select * from [t01_id] where t01_id = @t01_id";
SqlParameter[] sqlParameters = new SqlParameter[1];
sqlParameters[0] = new SqlParameter("@t01_id", SqlDbType.VarChar);
sqlParameters[0].Value = Convert.ToString(_id);
return conn.executeSelectQuery(query, sqlParameters);
}
}
}
Объект-значение
Объект-значение – это просто класс с содержимым методов GET и SET. Он используется для передачи данных от одного класса другому. Он непосредственно связан со слоем бизнес-логики и со слоем представления. Как видно на рисунке, объекты-значения устанавливаются в слое бизнес-логики и читаются из слоя представления.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ThreeLayerDemo.Core
{
public class UserVO
{
private int _idUser;
private string _firstname;
private string _lastname;
private string _email;
/// <constructor>
/// конструктор UserVO
/// </constructor>
public UserVO()
{
//
// Что нужно сделать: добавьте сюда логику конструктора
//
}
public int idUser
{
get
{
return _idUser;
}
set
{
_idUser = value;
}
}
public string firstname
{
get
{
return _firstname;
}
set
{
_firstname = value;
}
}
public string lastname
{
get
{
return _lastname;
}
set
{
_lastname = value;
}
}
public string email
{
get
{
return _email;
}
set
{
_email = value;
}
}
}
}