欢迎您访问我爱IT技术网,今天小编为你分享的编程技术是:【电子商务之框架分析(一)】,下面是详细的分享!
电子商务之框架分析(一)
前些阵子照着《Pro ASP.NET 2.0 E-Commerce in C#2005》书编辑了一个商务系统网站,想总结一下学习到的所学的知识。
该网站具有一般商务网站的特征
这里先讲讲他的框架
数据访问层
用的的存储过程操作数据库的存储,有一个Shop.DataAccess类库专门(注意我这里将原文的命名空间改为shop了)
该类库使用了一个组件来封装对数据库的操作 为 Microsoft Data Access Application Block, 其实就是将SQLHelper.cs复制到该类下就行了,该类可以自动管理存储过程的连接,参数和名称。
类库下的DataAccessBase类是一个基类,该类库几乎所有的类都会继承它,有两个属性一个是存储过程,以及返回数据库的连接字符串
注意:这里是从web.config文件中获取与数据库连接的字符串,但是在类中无法引用到Configuration类,所以我们要额外的添加引用System.Configuration.dll程序集
| 以下为引用的内容: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Configuration; namespace Shop.DataAccess { public class DataAccessBase { //存储过程的名称 protected string StoredprocedureName { set; get; } //获得连接字符串 protected string ConnectionString { get { return ConfigurationManager.ConnectionStrings["db_shopConnectionString"].ToString(); } } } } |
类库中的StoreProcedure类
利用枚举存储编写的存储过程名称,这样便于更改及管理
但是对于存储过程很多,一个类来存储肯定显得不够,个人建议在细分,控制一个类中的存储过程不超过20个
例如:
StoreProcedure_User,StoreProcedure_Product,StoreProcedure_Orders
| 以下为引用的内容: using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Shop.DataAccess { public class StoredProcedure { public enum Name { ProductByID_Select, Products_Select, Products_SelectSerach, ShoppingCart_Select, ShoppingCart_Insert, ShoppingCart_Update, ShoppingCart_Delete, EndUser_Insert, EndUserLogin_Select, Address_Select, ContactInformation_Select, AdminLogin_Select, Product_Insert, ProductCategory_Select, Product_Update, Orders_Select, OrderDetails_Select, OrderAll_Select, OrderStatus_Select, OrdersByID_Select, Orders_Update, ProductPromotion_Select } } } |
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;
using Microsoft.ApplicationBlocks.Data;
using System.Data;
namespace Shop.DataAccess
{
public class DataBaseHelper:DataAccessBase
{
public SqlParameter[] Parameters { get; set; }
/// <summary>
/// 构造函数
/// </summary>
/// <param name="storedproceducename">赋值存储过程</param>
public DataBaseHelper(string storedproceducename)
{
this.StoredprocedureName = storedproceducename;
}
/// <summary>
/// 无数据返回
/// </summary>
/// <param name="transaction"></param>
public void Run(SqlTransaction transaction)
{
SqlHelper.ExecuteNonQuery(transaction, CommandType.StoredProcedure, this.StoredprocedureName, this.Parameters);
}
/// <summary>
/// 无数据返回,自己提供参数
/// </summary>
/// <param name="transaction"></param>
/// <param name="Parameters">参数</param>
public void Run(SqlTransaction transaction, SqlParameter[] Parameters)
{
SqlHelper.ExecuteNonQuery(transaction, CommandType.StoredProcedure, this.StoredprocedureName, Parameters);
}
/// <summary>
/// 有参数返回(DataSet)
/// </summary>
/// <param name="connectionstring"></param>
/// <param name="parameters"></param>
/// <returns></returns>
public DataSet Run(string connectionstring, SqlParameter[] parameters)
{
DataSet ds;
ds = SqlHelper.ExecuteDataset(connectionstring, this.StoredprocedureName, parameters);
return ds;
}
/// <summary>
/// 返回第一行第一列的值
/// </summary>
/// <param name="connectionstring"></param>
/// <param name="parameters"></param>
/// <returns></returns>
public object RunScalar(string connectionstring, SqlParameter[] parameters)
{
object obj;
obj = SqlHelper.ExecuteScalar(connectionstring, this.StoredprocedureName, parameters);
return obj;
}
/// <summary>
/// 返回第一行第一列的值
/// </summary>
/// <param name="transaction"></param>
/// <param name="parameters"></param>
/// <returns></returns>
public object RunScalar(SqlTransaction transaction, SqlParameter[] parameters)
{
object obj;
obj = SqlHelper.ExecuteScalar(transaction, this.StoredprocedureName, parameters);
return obj;
}
/// <summary>
/// 无参数返回(DataSet)
/// </summary>
/// <param name="connectionstring"></param>
/// <returns></returns>
public DataSet Run(string connectionstring)
{
DataSet ds;
ds = SqlHelper.ExecuteDataset(connectionstring, CommandType.StoredProcedure, this.StoredprocedureName);
return ds;
}
/// <summary>
/// 无返回值
/// </summary>
public void Run()
{
SqlHelper.ExecuteNonQuery(base.ConnectionString, CommandType.StoredProcedure, this.StoredprocedureName, this.Parameters);
}
/// <summary>
/// 返回是SqlDataReader
/// </summary>
/// <param name="parameters"></param>
/// <returns></returns>
public SqlDataReader Run(SqlParameter[] parameters)
{
SqlDataReader dr;
dr = SqlHelper.ExecuteReader(base.ConnectionString, CommandType.StoredProcedure, this.StoredprocedureName, parameters);
return dr;
}
}
}
以上所分享的是关于电子商务之框架分析(一),下面是编辑为你推荐的有价值的用户互动:
相关问题:电子商务的主要框架及具体内容?拜托各位大神
答:电子商务套件是电子商务时代,基于ERPII思想的管理软件,主要强调的是企业在整个产业链中的协同商务能力,以物流为基础,物流、信息流、资金流、商务流四流合一,串起ERP、SCM、CRM、DRP等企业信息化应用的各个部分,是电子商务套件的显著特征。... >>详细
相关问题:如何理解电子商务的框架模型
答:我们若把电子商务形象化地看作是一座建筑物的话,那么中间的主题分为4层,而左右两旁各有一大支柱。 主体4层:即3层基础和1层上层,自下而上分别代表网络层(网络平台)、传输层(信息发布平台)、服务层(电子商务平台),以及应用层(电子商务... >>详细
相关问题:电子商务框架
答:首先你要先确定目标,你是要做什么样的平台、社区、商城、B2C还是B2B。 记住做这个要精,不要多。烧钱的一个行业来的 >>详细
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
