三层架构C/S程序设计实例(C#描述)
来源:互联网 发布:西安理工大学mpacc知乎 编辑:程序博客网 时间:2024/05/17 03:10
来源:http://www.cnblogs.com/3stones/archive/2008/08/26/1031415.html
http://www.builder.com.cn/2008/0127/722162.shtml
三层架构C/S程序设计实例(C#描述)
1.三层之间的关系:三层是指:界面显示层(UI),业务逻辑层(Business),数据操作层(Data Access)
文字描述:
Clients对UI进行操作,UI调用Business进行相应的运算和处理,Business通过Data Access对Data Base进行操作。
优点:
l 增加了代码的重用。Data Access可在多个项目中公用;Business可在同一项目的不同地方使用(如某个软件B/S和C/S部分可以共用一系列的Business组件)。
l 使得软件的分层更加明晰,便于开发和维护。美工人员可以很方便地设计UI设计,并在其中调用Business给出的接口,而程序开发人员则可以专注的进行代码的编写和功能的实现。
2.Data Access的具体实现:
DataAgent类型中变量和方法的说明:
private string m_strConnectionString; //连接字符串
private OleDbConnection m_objConnection; //数据库连接
public DataAgent(string strConnection) //构造方法,传入的参数为连接字符串
private void OpenDataBase() //打开数据库连接
private void #region CloseDataBase() //关闭数据库连接
public DataView GetDataView(string strSqlStat) //根据传入的连接字符串返回DataView
具体实现代码如下:
public class DataAgent
{
private string m_strConnectionString;
private OleDbConnection m_objConnection;
#region DataAgend
///<summary>
/// Initial Function
///</summary>
///<param name="strConnection"></param>
public DataAgent(string strConnection)
{
this.m_strConnectionString = strConnection;
}
#endregion
#region OpenDataBase
///<summary>
/// Open Database
///</summary>
private void OpenDataBase()
{
try
{
this.m_objConnection = new OleDbConnection();
this.m_objConnection.ConnectionString = this.m_strConnectionString;
if (this.m_objConnection.State != ConnectionState.Open)
{
this.m_objConnection.Open();
}
}
catch (Exception e)
{
throw e;
}
}
#endregion
#region CloseDataBase
///<summary>
/// Close Database
///</summary>
private void CloseDataBase()
{
if (this.m_objConnection != null)
{
if (this.m_objConnection.State == ConnectionState.Open)
{
this.m_objConnection.Close();
}
}
}
#endregion
#region GetDataView
///<summary>
/// Execute the sql and return the default table view
///</summary>
///<param name="strSelectString">Select String</param>
///<returns>DataView of the DataTable</returns>
public DataView GetDataView(string strSqlStat)
{
try
{
this.OpenDataBase();
OleDbDataAdapter objDataAdapter = new OleDbDataAdapter(strSqlStat.Trim(), this.m_objConnection);
DataSet objDataSet = new DataSet();
objDataAdapter.Fill(objDataSet);
return objDataSet.Tables[0].DefaultView;
}
catch (Exception e)
{
throw e;
}
finally
{
this.CloseDataBase();
}
}
#endregion
}
3.Business的具体实现:
建立名为Base的类,此类作为其他事务类的基类,其中定义了一个DataAgent的实例。其他所有的Business类都从该改类派生。
在该类中添加对DataAgent的引用,使所有的事务类都能使用DataAgent中的方法。
Base.cs源代码:
public abstract class Base
{
protected DataAgent OleDBAgent = new DataAgent("Provider=SQLOLEDB;Data Source=(local);DataBase=test;User ID=sa;PWD=");
}
准备好了数据操作层和事务层的基类,底下就可以正式地开始业务逻辑类的开发了,如有一个显示新闻的类News,其中包含了一个GetNewsList()的方法,该方法用来获取所有的新闻标题列表,代码如下:
public class News : Base
{
public DataView GetNewsList()
{
string strSql;
strSql = "";
strSql += " SELECT Top 10 NewsId,NewsTitle ";
strSql += " FROM Tb_News";
strSql += " WHERE NewsEnable = 1";
strSql += " ORDER BY NewsId ";
return OleDBAgent.GetDataView(strSql);
}
}
由于数据库结构比较简单,在此就不再给出详细的表结构。
4.UI层对Business中接口的调用
首先,在窗体Form1中添加对News类的引用。
然后,在窗体Form1中添加一个(DataGridView)dgNews用来显示新闻列表。
在窗体的Form1_Load方法中添加如下代码:
private void Form1_Load(object sender, EventArgs e)
{
News objNews = new News();
this.dgNews.DataSource = objNews.GetNewsList();
}
- 三层架构C/S程序设计实例(C#描述)
- 三层架构C/S程序设计实例(C#描述)
- 三层架构C/S程序设计实例(C#描述)
- tomcat c/s 三层架构
- C/S架构程序设计
- C#三层架构登陆实例
- C#三层架构登陆实例
- C#三层架构登陆实例
- C# 最简单的三层架构实例
- C#学习之三层架构实例
- C#学习之三层架构实例
- 三层架构程序设计
- 一个典型的C/S架构的三层架构设计图
- 从C/S模式下的三层架构说起
- 从C/S模式下的三层架构说起
- Delphi的C/S架构三层模式简述
- 从C/S模式下的三层架构说起
- 从C/S模式下的三层架构说起
- 面向对象设计(OOD) 包原则
- arcgis server 中关于使用maptip的一些tips
- C++多继承的二义性
- 写出好代码的条条框框
- 自己写的一个超级烂的类!警戒自己以后不要再写出如此糟糕的类!
- 三层架构C/S程序设计实例(C#描述)
- 开始写框架
- Javascript学习【类型转化问题总汇】
- sql视图实例(一)
- 浅述WinForm多线程编程与Control.Invoke的应用
- javascript在IE和Firefox中的兼容考虑
- GUI设计禁忌2.0
- Flex中如何通过rowCount属性,动态改变DataGrid显示行数
- arcgis engine中图层的datasource访问与修改相关