C# 好用的三层架构,项目直接上手用
一、项目结构
注意:1、Common类中的引用添加:右键--添加引用--.NET--选择对应的引用
2、各层之间引用互相添加(这个就不必多说了,三层最基础部分)
3、在添加 Oracle 引用时候需要单独下载一个 Oracle.ManagedDataAccess.dll
4、DBAccessLayer 项目里的代码可以不用理解,会调用就行
5、配置文件代码:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key="DatabaseType" value="ORACLE" />
<!--<add key="DatabaseType" value="SQL" />
<add key="DatabaseType" value="OLEDB" />
<add key="DatabaseType" value="ODBC" />-->
<!--本地服务器-->
<add key="OracleUid" value="uname" />
<add key="OraclePwd" value="upwd" />
<add key="OracleDataSource" value="(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.8.200)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=test)))" />
<add key="SqlServerServer" value="." />
<add key="SqlServerDatabase" value="hotel" />
<add key="SqlServerUid" value="sa" />
<add key="SqlServerPwd" value="sa" />
<add key="OleDbProvider" value="Microsoft.jet.oledb.4.0" />
<add key="OleDbDataSource" value="D:\test.mdb" />
<add key="OdbcDriver" value="Microsoft Access Driver (*.mdb)" />
<add key="OdbcDBQ" value="d:\test.mdb" />
<add key="ClientSettingsProvider.ServiceUri" value="" />
</appSettings>
</configuration>
二、调用方法
主窗体查询代码:
//查询所有用户
private void btnSelect_Click(object sender, EventArgs e)
{
try
{
dgvUser.DataSource = MyProjectBLL.Manage.GetAllUser().Tables[];
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
BLL层对应GetAllUser()代码:
//查看会员信息
public static DataSet GetAllUser()
{
return MyProjectDAL.Service.GetAllUser();
}
DAL层对应GetAllUser()代码:
//查看会员信息
public static DataSet GetAllUser()
{
string strSql = string.Format("select * from h_manager");
IDBAccess dbAccess = DBAccessLayer.DBFactory.GetDBAccess();
return dbAccess.ExecuteDataSet(strSql, CommandType.Text, null);
}
备注:三层相互调用,有条不紊。
根据自己的业务需求拓展。
源码下载地址:源代码
C# 好用的三层架构,项目直接上手用的更多相关文章
- 简单使用Idea创建三层架构项目和数据库连接(使用原生ajax进行访问+ajax)
Idea创建三层架构项目 首先创建一个Web项目model 创建Web完成后进行创建entity.dao.service 特别注意 根据上面的步骤进行创建即可得到 创建完成 我们首先创建数据库 cre ...
- ASP.NET三层架构项目创建流程
1.进入VS2010,新建项目—>Visual C#—>Web—>ASP.NET空Web应用程序,如图所示: 2.在解决方案处右击—>新建项目—>Windows—> ...
- MVC项目实践,在三层架构下实现SportsStore,从类图看三层架构
在"MVC项目实践,在三层架构下实现SportsStore-02,DbSession层.BLL层"一文的评论中,博友浪花一朵朵建议用类图来理解本项目的三层架构.于是就有了本篇: I ...
- MVC项目实践,在三层架构下实现SportsStore-02,DbSession层、BLL层
SportsStore是<精通ASP.NET MVC3框架(第三版)>中演示的MVC项目,在该项目中涵盖了MVC的众多方面,包括:使用DI容器.URL优化.导航.分页.购物车.订单.产品管 ...
- MVC项目实践,在三层架构下实现SportsStore-01,EF Code First建模、DAL层等
SportsStore是<精通ASP.NET MVC3框架(第三版)>中演示的MVC项目,在该项目中涵盖了MVC的众多方面,包括:使用DI容器.URL优化.导航.分页.购物车.订单.产品管 ...
- MVC项目实践,在三层架构下实现SportsStore-03,Ninject控制器工厂等
SportsStore是<精通ASP.NET MVC3框架(第三版)>中演示的MVC项目,在该项目中涵盖了MVC的众多方面,包括:使用DI容器.URL优化.导航.分页.购物车.订单.产品管 ...
- MVC项目实践,在三层架构下实现SportsStore-04,实现分页
SportsStore是<精通ASP.NET MVC3框架(第三版)>中演示的MVC项目,在该项目中涵盖了MVC的众多方面,包括:使用DI容器.URL优化.导航.分页.购物车.订单.产品管 ...
- MVC项目实践,在三层架构下实现SportsStore-05,实现导航
SportsStore是<精通ASP.NET MVC3框架(第三版)>中演示的MVC项目,在该项目中涵盖了MVC的众多方面,包括:使用DI容器.URL优化.导航.分页.购物车.订单.产品管 ...
- MVC项目实践,在三层架构下实现SportsStore-06,实现购物车
SportsStore是<精通ASP.NET MVC3框架(第三版)>中演示的MVC项目,在该项目中涵盖了MVC的众多方面,包括:使用DI容器.URL优化.导航.分页.购物车.订单.产品管 ...
- MVC项目实践,在三层架构下实现SportsStore-07,实现订单提交
SportsStore是<精通ASP.NET MVC3框架(第三版)>中演示的MVC项目,在该项目中涵盖了MVC的众多方面,包括:使用DI容器.URL优化.导航.分页.购物车.订单.产品管 ...
随机推荐
- lintcode:Add Binary 二进制求和
题目: 二进制求和 给定两个二进制字符串,返回他们的和(用二进制表示). 样例 a = 11 b = 1 返回 100 解题: 和求两个链表的和很类似 考虑进位,考虑最后一项的进位 0+0 = 0 不 ...
- [topcoder]HappyLetterDiv2
http://community.topcoder.com/stat?c=problem_statement&pm=13245 就是有字符串,里面的字符可以随意两两消除,如果不等的话,那么最后 ...
- 设计模式之工厂方法模式VS简单工厂方法模式
名词解释: 简单工厂:这个实在是没什么解释的,就是一个工厂类,然后有一个方法,根据传递的参数可以通过switch(你也可以是if,或者是使用高端的反射 )来进行对象的创建. 工厂方法:定义一个用于创建 ...
- redis twitter
http://redis.io/topics/twitter-clone 翻译:http://my.oschina.net/Twitter/blog/287539
- ZOJ 3349 Special Subsequence 简单DP + 线段树
同 HDU 2836 只不过改成了求最长子串. DP+线段树单点修改+区间查最值. #include <cstdio> #include <cstring> #include ...
- ProgressBar 示例及自定义样式
在layout中使用ProgerssBar,其中使用了自定义的样式 <ProgressBar android:id="@+id/footer_refresh_prgs" st ...
- Android开发之通过反射获取到Android隐藏的方法
在PackageManger中,有些方法被隐藏了,无法直接调用,需要使用反射来获取到该方法. 比如方法:getPackageSizeInfo(),通过这个方法可以获取到apk的CacheSize,Co ...
- python学习中,list/tuple/dict格式化遇到的问题
昨天上了python培训的第一课,学习了基础知识.包括类型和赋值,函数type(),dir(),id(),help()的使用,list/tuple/dict的定义以及内置函数的操作,函数的定义,控制语 ...
- HDU 1255 覆盖的面积 (扫描线 线段树 离散化 矩形面积并)
题目链接 题意:中文题意. 分析:纯手敲,与上一道题目很相似,但是刚开始我以为只是把cnt>=0改成cnt>=2就行了,. 但是后来发现当当前加入的线段的范围之前 还有线段的时候就不行了, ...
- (转)博弈问题与SG函数
博弈问题若你想仔细学习博弈论,我强烈推荐加利福尼亚大学的Thomas S. Ferguson教授精心撰写并免费提供的这份教材,它使我受益太多.(如果你的英文水平不足以阅读它,我只能说,恐怕你还没到需要 ...