此页面上的内容需要较新版本的 Adobe Flash Player。

获取 Adobe Flash Player

您现在的位置: 智可网 - 程序开发 - 微软开发专区 - Visual Studio - 正文
用VS2005.NET进行三层结构应用程序的开发(1)
教程录入:欧敏婷    责任编辑:gdzqgn 作者:佚名 文章来源:51CTO.COM
一、三层之间的关系

三层是指:界面显示层(UI),业务逻辑层(Business),数据操作层(Data Access)。

文字描述:

ClIEnts对UI进行操作,UI调用Business进行相应的运算和处理,Business通过Data Access对Data Base进行操作。

优点:

1、增加了代码的重用。Data Access可在多个项目中公用;Business可在同一项目的不同地方使用(如某个软件B/S和C/S部分可以共用一系列的Business组件)。

2、使得软件的分层更加明晰,便于开发和维护。美工人员可以很方便地设计UI设计,并在其中调用Business给出的接口,而程序开发人员则可以专注的进行代码的编写和功能的实现。

二、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
{
#region Variables

private string m_strConnectionString;
private OleDbConnection m_objConnection;

#endregion Variables
#region Functions
#region DataAgend
///


/// Initial Function
///
///
public DataAgent(string strConnection)
{
this.m_strConnectionString = strConnection;
}
#endregion DataAgend
#region OpenDataBase
///
/// function to open data base
///
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 OpenDataBase
#region CloseDataBase

///


/// the function to cloase data base
///

private void CloseDataBase()
{
if(this.m_objConnection != null)
{
if(this.m_objConnection.State == ConnectionState.Open)
{
this.m_objConnection.Close();
}
}
}

#endregion
#region GetDataVIEw

///


/// Execute the sql and return the default table vIEw
///
/// Select String
/// DataVIEw of the DataTable

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 GetDataTable
#endregion Functions
}

分享
打赏我
打开支付宝"扫一扫" 打开微信"扫一扫"
客户端
"扫一扫"下载智可网App
意见反馈
用VS2005.NET进行三层结构应用程序的开发(1)
作者:佚名 来源:51CTO.COM
一、三层之间的关系

三层是指:界面显示层(UI),业务逻辑层(Business),数据操作层(Data Access)。

文字描述:

ClIEnts对UI进行操作,UI调用Business进行相应的运算和处理,Business通过Data Access对Data Base进行操作。

优点:

1、增加了代码的重用。Data Access可在多个项目中公用;Business可在同一项目的不同地方使用(如某个软件B/S和C/S部分可以共用一系列的Business组件)。

2、使得软件的分层更加明晰,便于开发和维护。美工人员可以很方便地设计UI设计,并在其中调用Business给出的接口,而程序开发人员则可以专注的进行代码的编写和功能的实现。

二、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
{
#region Variables

private string m_strConnectionString;
private OleDbConnection m_objConnection;

#endregion Variables
#region Functions
#region DataAgend
///


/// Initial Function
///
///
public DataAgent(string strConnection)
{
this.m_strConnectionString = strConnection;
}
#endregion DataAgend
#region OpenDataBase
///
/// function to open data base
///
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 OpenDataBase
#region CloseDataBase

///


/// the function to cloase data base
///

private void CloseDataBase()
{
if(this.m_objConnection != null)
{
if(this.m_objConnection.State == ConnectionState.Open)
{
this.m_objConnection.Close();
}
}
}

#endregion
#region GetDataVIEw

///


/// Execute the sql and return the default table vIEw
///
/// Select String
/// DataVIEw of the DataTable

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 GetDataTable
#endregion Functions
}