3.5存储过程的设计 此系统采用基于WEB的B/S三层结构模式来开发: 内容来自论文无忧网 www.paper51.com 用户界面层负责处理用户的输入和向用户的输出,但并不负责解释其含义 内容来自论文无忧网 www.paper51.com 商业逻辑层是数据的业务层,建立实际的数据库连接根据用户的请求生成sql语句检索或更新数据库,并把结果返回到用户界面层 内容来自www.paper51.com 数据库层负责实际的数据检索和存储,这层由具体的存储过程在Sql2000里实现 paper51.com
数据库层――存储过程(StoredProcedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中。用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。存储过程是数据库中的一个重要对象,任何一个设计良好的数据库应用程序都应该用到存储过程。总的来说,存储过程具有以下一些优点: ◆存储过程允许标准组件式编程 ◆存储过程能够实现较快的执行速度 ◆存储过程能够减少网络流量 ◆存储过程可被作为一种安全机制来充分利用 paper51.com 例子: 内容来自www.paper51.com 比如下面的一个存储过程实现功能是――管理员添加商品 内容来自论文无忧网 www.paper51.com CREATE procedure addGoods 内容来自www.paper51.com ( copyright paper51.com
@CateGoryDetailID int, copyright paper51.com @modelNumber nvarchar(50), 内容来自论文无忧网 www.paper51.com @modelName nvarchar(50), copyright paper51.com @goodsImage nvarchar(50), 内容来自论文无忧网 www.paper51.com @salePrice money, 内容来自论文无忧网 www.paper51.com @goodsDesc nvarchar(4000) copyright paper51.com ) http://www.paper51.com as copyright paper51.com insert intogoods(CateGoryDetailID,modelNumber,modelName,goodImage,salePrice,goodDescription) http://www.paper51.com values(@CateGoryDetailID,@modelNumber,@modelName,@goodsImage,@salePrice,@goodsDesc) 内容来自www.paper51.com GO http://www.paper51.com 比如下面的一个存储过程实现功能是――登陆系统 内容来自www.paper51.com CREATE PROCEDURE login http://www.paper51.com
( copyright paper51.com @idName varchar(50), 内容来自www.paper51.com @pwd varchar(50), 内容来自论文无忧网 www.paper51.com @userID int output paper51.com
) http://www.paper51.com AS 内容来自www.paper51.com select @userID=userID 内容来自论文无忧网 www.paper51.com from Users paper51.com where paper51.com idName=@idName paper51.com and http://www.paper51.com Pwd=@pwd http://www.paper51.com if @@rowcount<1 http://www.paper51.com
select userID=0 http://www.paper51.com GO paper51.com
几乎系统所有的于数据库操作都在 Sql2000里面,通过存储过程来实现。 内容来自www.paper51.com 3.6 系统关键代码 paper51.com 通过一个DBO.CS 类来实现, 里面的代码内容包含解释说明如下 内容来自www.paper51.com using System; paper51.com using System.Data; paper51.com using System.Data.SqlClient; http://www.paper51.com using System.Data.SqlTypes; http://www.paper51.com using System.Configuration; copyright paper51.com
using System.Web; http://www.paper51.com
using System.Web.UI; copyright paper51.com namespace IStore http://www.paper51.com { copyright paper51.com /// <summary> http://www.paper51.com /// DBO 的摘要说明。 内容来自www.paper51.com /// </summary> http://www.paper51.com public class DBO 内容来自www.paper51.com
{ copyright paper51.com public DBO() 内容来自www.paper51.com { paper51.com } 内容来自论文无忧网 www.paper51.com
/////////////////////////////////返回商品类别函数 paper51.com public SqlDataReader GetGoodsCategories(int CateGoryID) paper51.com { paper51.com
SqlConnection myConn=newSqlConnection(ConfigurationSettings.AppSettings["ConnectionString"]); 内容来自论文无忧网 www.paper51.com SqlCommand cmd=newSqlCommand("uListGoods",myConn); paper51.com cmd.CommandType=CommandType.StoredProcedure; 内容来自www.paper51.com SqlParameterparaCateGoryID=newSqlParameter("@CateGoryID",SqlDbType.Int,4); http://www.paper51.com paraCateGoryID.Value=CateGoryID; paper51.com cmd.Parameters.Add(paraCateGoryID); paper51.com myConn.Open(); paper51.com SqlDataReaderdr=cmd.ExecuteReader(CommandBehavior.CloseConnection); 内容来自论文无忧网 www.paper51.com return dr; copyright paper51.com } http://www.paper51.com ////////////////////////////////返回销量最好的几种商品 copyright paper51.com
public SqlDataReader GetMostSoldGoods() paper51.com { 内容来自www.paper51.com
SqlConnectionmyConn=newSqlConnection(ConfigurationSettings.AppSettings["ConnectionString"]); copyright paper51.com SqlCommandcmd=newSqlCommand("mostSoldGoods",myConn); paper51.com
cmd.CommandType=CommandType.StoredProcedure; 内容来自www.paper51.com myConn.Open(); 内容来自论文无忧网 www.paper51.com SqlDataReader dr=cmd.ExecuteReader(CommandBehavior.CloseConnection); 内容来自论文无忧网 www.paper51.com return dr; copyright paper51.com
内容来自论文无忧网 www.paper51.com } paper51.com /////////////////////////////////返回指定种类的所有商品 内容来自www.paper51.com public DataSet GetGoodsByCate(intcateGoryID) 内容来自www.paper51.com { 内容来自www.paper51.com SqlConnectionmyConn=new SqlConnection(ConfigurationSettings.AppSettings["ConnectionString"]); http://www.paper51.com SqlCommandcmd=newSqlCommand("GetgoodsByCateID",myConn); paper51.com
cmd.CommandType=CommandType.StoredProcedure; 内容来自论文无忧网 www.paper51.com SqlParameterparaCateGoryID=newSqlParameter("@cateGoryID",SqlDbType.Int,4); 内容来自www.paper51.com
paraCateGoryID.Value=cateGoryID; copyright paper51.com cmd.Parameters.Add(paraCateGoryID); http://www.paper51.com myConn.Open(); 内容来自论文无忧网 www.paper51.com
SqlDataAdapterda=new SqlDataAdapter(); 内容来自www.paper51.com da.SelectCommand=cmd; 内容来自www.paper51.com DataSet ds =new DataSet(); 内容来自www.paper51.com da.Fill(ds); paper51.com ds.Tables["Table"].TableName="goods"; http://www.paper51.com return ds; http://www.paper51.com } paper51.com |