Трехслойная архитектура в C# .NET - Слой доступа к базе данных

ОГЛАВЛЕНИЕ

Слой доступа к базе данных

Слой доступа к базе данных (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;
            }
        }
    }
}