架构-层-DAL:DAL
ylbtech-架构-层-DAL:DAL |
DAL是数据访问层的英文缩写,即为数据访问层(Data Access Layer)。其功能主要是负责数据库的访问。简单地说就是实现对数据表的Select(查询)、Insert(插入)、Update(更新)、Delete(删除)等操作。
1.返回顶部 |
2.返回顶部 |
基本介绍

特点
设计
namespace MessageBoard.DataAccessLayer
{
public class Database
{
自定义方法()
{ }
}
}
using System.Data.SqlClient; public class DBConnection
{
SqlConnection conn = null; public DBConnection()
{
//TODO:创建对象
// Windows 身份验证
//conn = new SqlConnection("Server=.;Database=db1;Integrated Security=SSPI"); // 本地连接 // SQL Server 身份验证
// .,locahost,127.0.0.1 都代表本地
//conn.ConnectionString = "Server=.;Database=db1;Uid=sa;Pwd=123456";
//conn.ConnectionString = "Server=locahost;Database=db1;Uid=sa;Pwd=123456";
//conn.ConnectionString = "Server=127.0.0.1;Database=db1;Uid=sa;Pwd=123456";
conn = new SqlConnection( "Server=.;User ID=sa;Password=123456;Initial Catalog=db1;Min Pool Size=30;Max Pool Size=100;Connect Timeout=60" ); // 远程连接
} public SqlConnection Conn
{
get { return conn; }
set { conn = value; }
}
}
// 创建Conn对象
SqlConnection conn = new DBConnection().Conn;
3. 代码返回顶部 |
using System.Data.SqlClient; public class DBConnection
{
SqlConnection conn = null; public DBConnection()
{
//TODO:创建对象
// Windows 身份验证
//conn = new SqlConnection("Server=.;Database=db1;Integrated Security=SSPI"); // 本地连接 // SQL Server 身份验证
// .,locahost,127.0.0.1 都代表本地
//conn.ConnectionString = "Server=.;Database=db1;Uid=sa;Pwd=123456";
//conn.ConnectionString = "Server=locahost;Database=db1;Uid=sa;Pwd=123456";
//conn.ConnectionString = "Server=127.0.0.1;Database=db1;Uid=sa;Pwd=123456";
conn = new SqlConnection( "Server=.;User ID=sa;Password=123456;Initial Catalog=db1;Min Pool Size=30;Max Pool Size=100;Connect Timeout=60" ); // 远程连接
} public SqlConnection Conn
{
get { return conn; }
set { conn = value; }
}
}
public class ProductInfo
{
public int? ProductId { get; set; }
public string ProductName { get; set; }
public decimal? UnitPrice { get; set; }
public string Type { get; set; } }
using System.Collections.Generic; using System.Data.SqlClient; public class Product
{
/// <summary>
/// ylb: 1,GetAll
/// remark: 获取所有产品,并以productId降序排列
/// </summary>
/// <returns></returns>
public IList<ProductInfo> GetAll()
{ IList<ProductInfo> dals = new List<ProductInfo>(); string sql = "select productId,productName,unitPrice,type from Product"; SqlConnection conn = new DBConnection().Conn;
SqlCommand com = conn.CreateCommand(); com.CommandText = sql;
conn.Open();
try
{
SqlDataReader sdr = com.ExecuteReader();
while( sdr.Read() )
{
ProductInfo dal = new ProductInfo()
{
ProductId = sdr.GetInt32( ),
ProductName = sdr.GetString( ),
UnitPrice = sdr.GetDecimal( ),
Type = sdr.GetString( )
}; dals.Add( dal );
}
}
finally
{
conn.Close();
}
return dals;
} /// <summary>
/// ylb: 2,Add
/// remark: 添加一个产品
/// field: productName,unitPrice,type
/// </summary>
/// <param name="dal"></param>
public void Add( ProductInfo dal )
{ string sql = "insert into Product(productName,unitPrice,type) values(@productName,@unitPrice,@type)"; SqlConnection conn = new DBConnection().Conn;
SqlCommand com = conn.CreateCommand(); com.Parameters.Add( new SqlParameter( "@productName", dal.ProductName ) );
com.Parameters.Add( new SqlParameter( "@unitPrice", dal.UnitPrice ) );
com.Parameters.Add( new SqlParameter( "@type", dal.Type ) );
com.CommandText = sql; conn.Open();
try
{
com.ExecuteNonQuery();
}
finally
{
conn.Close();
} } /// <summary>
/// ylb: 3,GetModel
/// remark: 获得一个实体对象,根据productId
/// </summary>
/// <param name="productId"></param>
/// <returns></returns>
public ProductInfo GetModel( int productId )
{
ProductInfo dal = null; string sql = "select productId,productName,unitPrice,type from Product where productId=@productId"; SqlConnection conn = new DBConnection().Conn;
SqlCommand com = conn.CreateCommand(); com.Parameters.Add( new SqlParameter( "@productId", productId ) );
com.CommandText = sql;
conn.Open();
try
{
SqlDataReader sdr = com.ExecuteReader();
while( sdr.Read() )
{
dal = new ProductInfo()
{
ProductId = sdr.GetInt32( ),
ProductName = sdr.GetString( ),
UnitPrice = sdr.GetDecimal( ),
Type = sdr.GetString( )
};
}
}
finally
{
conn.Close();
}
return dal;
} /// <summary>
/// ylb: 4,Update
/// remark: 修改一条信息 ,根据productId
/// </summary>
/// <param name="dal"></param>
public void Update( ProductInfo dal )
{ string sql = "update Product set productName=@productName,unitPrice=@unitPrice,type=@type where productId=@productId"; SqlConnection conn = new DBConnection().Conn;
SqlCommand com = conn.CreateCommand(); com.Parameters.Add( new SqlParameter( "@productName", dal.ProductName ) );
com.Parameters.Add( new SqlParameter( "@unitPrice", dal.UnitPrice ) );
com.Parameters.Add( new SqlParameter( "@type", dal.Type ) );
com.Parameters.Add( new SqlParameter( "@productId", dal.ProductId ) );
com.CommandText = sql; conn.Open();
try
{
com.ExecuteNonQuery();
}
finally
{
conn.Close();
} } /// <summary>
/// ylb: 5,Delete
/// remark: 删除一条信息,根据productId
/// </summary>
/// <param name="productId"></param>
public void Delete( int productId )
{ string sql = "delete Product where productId=@productId"; SqlConnection conn = new DBConnection().Conn;
SqlCommand com = conn.CreateCommand(); com.Parameters.Add( new SqlParameter( "@productId", productId ) );
com.CommandText = sql; conn.Open();
try
{
com.ExecuteNonQuery();
}
finally
{
conn.Close();
}
}
}
4.返回顶部 |
5.返回顶部 |
6.返回顶部 |
![]() |
作者:ylbtech 出处:http://ylbtech.cnblogs.com/ 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。 |
架构-层-DAL:DAL的更多相关文章
- asp.net mvc 简单项目框架的搭建过程(一)对Bll层和Dal层进行充分解耦
学习asp.net 已经有近三个月的时间了,在asp.net mvc上花的时间最多,但个人真是有些菜,不得不说,asp.net mvc的水真的还是蛮深的.目前在公司实习,也见过公司几个项目的代码了.对 ...
- IOC的理解,整合AOP,解耦对Service层和Dal层的依赖
DIP依赖倒置原则:系统架构时,高层模块不应该依赖于低层模块,二者通过抽象来依赖依赖抽象,而不是细节 贯彻依赖倒置原则,左边能抽象,右边实例化的时候不能直接用抽象,所以需要借助一个第三方 高层本来是依 ...
- 三层架构BLL+DAL+Model & MVC & MVVM
三层架构 - 国内版 Binghttps://cn.bing.com/search?FORM=U227DF&PC=U227&q=%E4%B8%89%E5%B1%82%E6%9E%B6% ...
- 架构-层-Model:Model
ylbtech-架构-层-Model:Model 1.返回顶部 1. Model,意思是模特儿,模特儿是英文“model”的音译.模特一般来说要五官端正,身材良好,有气质,展示能力强,另外身高要具备一 ...
- 架构-层-BLL:BLL
ylbtech-架构-层-BLL:BLL 业务逻辑层(Business Logic Layer)无疑是系统架构中体现核心价值的部分.它的关注点主要集中在业务规则的制定.业务流程的实现等与业务需求有关的 ...
- 从架构层面谈web加载优化(个人整理)
最近听了阿里一位大牛的讲座,讲web架构优化对网页加载的影响,看完之后对他所讲的一些优化方法进行一些总结和整理,发现收获还是蛮多的,下面多为个人整理和个人见解,希望有说的不对的,能及时指出 1.DNS ...
- JDBC——架构层、驱动
JDBC(java Datebase Connector) jdbc驱动程序 四种类型: jdbc-odbc桥接驱动程序 Native-API JDBC-Net Native-Protocol (常见 ...
- MVC项目实践,在三层架构下实现SportsStore-01,EF Code First建模、DAL层等
SportsStore是<精通ASP.NET MVC3框架(第三版)>中演示的MVC项目,在该项目中涵盖了MVC的众多方面,包括:使用DI容器.URL优化.导航.分页.购物车.订单.产品管 ...
- 使用ABP框架踩过的坑系列1
企业级(例如ERP)应用, 一遍一遍的在重复:认证.验证.异常处理.日志.国际化和本地化.数据库连接管理.配置管理. 审计记录等,同时.NET有很多最佳实践:分层.模块化.DDD领域驱动.DI ...
随机推荐
- python学习第五十二天logging模块的使用
很多程序都有记录日志的需求,并且日志包含的信息即有正常的程序访问日志,还可能有错误,警告等信息输出,python的 logging模块提供了标准的日志接口,你可以通过它存储各种格式的日志,loggin ...
- 计算机系统结构总结_Scoreboard and Tomasulo
Textbook:<计算机组成与设计——硬件/软件接口> HI<计算机体系结构——量化研究方法> QR 超标量 前面讲过超标量的概念.超标量的目的就是实现指 ...
- application session 实现简单的在线聊天人数的统计
写了快一年的asp.net,application对象还真没怎么用过.看了看书,根据这两个对象的特性写了一个简单的聊天室程序.真的是非常的简陋 ASP.Net中有两个重要的对象,一个是applicat ...
- java中的数据类型,基本数据类型及其包装类型
java中的8大基本类型及其包装类型 1,int--->Integer 2,byte--->Byte 3,short--->Short 4,long--->Long 5,cha ...
- spring服务器接收参数格式
注:@RequestParam 或@RequestBody等注解是否添加有什么区别 不加:参数可有可无,无参数时为null,但当参数类型是 数字基本类型(int.double)时会报错: 加上@Req ...
- String.IsNullOrEmpty官方示例
// This example demonstrates the String.IsNullOrEmpty() method using System; class Sample { public s ...
- Windows 实用软件
Useful tool Listary Ditto Winsnap Quick Look Myper Splash GifCam ScreenToGif Free Download Manage Si ...
- PAT Basic 1028 人口普查 (20 分)
某城镇进行人口普查,得到了全体居民的生日.现请你写个程序,找出镇上最年长和最年轻的人. 这里确保每个输入的日期都是合法的,但不一定是合理的——假设已知镇上没有超过 200 岁的老人,而今天是 2014 ...
- CSS3之mix-blend-mode
<!-- more --> 在线编辑demo 属性描述了元素的内容应该与元素的直系父元素的内容和元素的背景如何混合. mix-blend-mode: normal; //正常 mix-bl ...
- pyqt5-橡皮筋控件QRubberBand
提供一个矩形或线来指示选择或边界 一般结合鼠标事件一同协作 继承于 QWidget import sys from PyQt5.QtWidgets import QApplication, QWidg ...