|
 |
栏目导栏 |
|
| |
|
|
|
|
 |
资料搜索 |
|
| |
|
|
|
|
 |
热门文章 |
|
| |
|
|
|
|
 |
最新文章 |
|
| |
|
|
|
| |
| |
|
|
|
| |
| Asp.Net(C#)+Sql Server三层架构下数据存取方案 |
|
引言: LE3Linux联盟 LE3Linux联盟 参与了一个大型社区程序的开发,现在将相关开发经验陆续总结出来,和大家探讨一下。本节主要想与大家探讨一种数据读取方案:集合类代替直接从数据库中获取的DataSet,主要好处就是可以解决Sql Server吞吐量的瓶颈问题。一般小数量的程序不会有问题,但数据以十万百万条计的时候,数据库的吞吐量的限制就会表现的比较明显。这里的解决方案其实也就是把海量数据信息分成一条条取出,以频繁取库的代价解决瓶颈限制,其实也就是把数据库服务器的负担让WEB服务器分担了。闲话少说,进入正题,我们的例子还是社区程序中的一个配置表的读取,我们就是要根据一定条件来从数据库中获取数据。 LE3Linux联盟 LE3Linux联盟 一、数据库设计: LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 ScoreSetting 积分设置表 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 Key: ScoreSettingID LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 Field name LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 Type LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 Length LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 Default LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 Description LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 ScoreSettingID LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 int LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 4 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 0 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 ScoreSettingID(自动编号) LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 FunctionID LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 int LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 4 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 0 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 功能ID LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 OperationID LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 int LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 4 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 0 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 操作ID LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 RoleTypeID LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 int LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 4 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 0 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 身份ID LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 BBSTypeID LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 int LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 4 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 0 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 论坛类别ID LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 Score LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 int LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 4 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 0 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 积分数 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 BB LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 int LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 4 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 0 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 币币数 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 BuyType LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 Int LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 4 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 0 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 购买类型 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 FunctionState LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 int LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 4 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 0 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 0:否,1:是,2:购买 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 存储过程: LE3Linux联盟 LE3Linux联盟 /********************************** LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 功能:根据一定条件读取功能记录 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 作者:Rexsp LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 创建日期:2004-01-13 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 修改者: LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 修改日期: LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 **********************************/ LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 ALTER PROCEDURE GetScoreSetting LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 ( LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 @ScoreSettingID INT=-1, ---设置ID LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 @FunctionID INT=-1, ---功能ID LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 @OperationID INT=-1, ---操作ID LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 @RoleTypeID INT=-1, ---角色类型 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 @BBSTypeID INT=-1, ---版块类型 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 @Score INT=-1, ---积分设置 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 @BB INT=-1, ---币币设置 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 @BuyType INT=-1, ---购买类型 0:不是购买类型 1:一次性购买 2:反复购买 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 @FunctionState INT=-1 ---功能状态 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 ) LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 AS LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 SET NOCOUNT ON LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 DECLARE @strSQL NVARCHAR(1000) LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 SET @strSQL = 'SELECT * FROM [ScoreSetting] WHERE @ckScoreSettingID = @ckScoreSettingID' LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 --- Add KeyWords Begin --- LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 IF @ScoreSettingID<> -1 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 BEGIN LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 SET @strSQL = @strSQL + ' AND ScoreSettingID= @ckScoreSettingID' LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 END LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 IF @FunctionID<> -1 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 BEGIN LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 SET @strSQL = @strSQL + ' AND FunctionID= @ckFunctionID' LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 END LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 IF @OperationID<>-1 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 BEGIN LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 SET @strSQL = @strSQL + ' AND OperationID = @ckOperationID' LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 END LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 IF @RoleTypeID<>-1 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 BEGIN LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 SET @strSQL = @strSQL + ' AND RoleTypeID = @ckRoleTypeID' LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 END LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 IF @BBSTypeID<>-1 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 BEGIN LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 SET @strSQL = @strSQL + ' AND BBSTypeID = @ckBBSTypeID' LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 END LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 IF @Score<>-1 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 BEGIN LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 SET @strSQL = @strSQL + ' AND Score = @ckScore' LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 END LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 IF @BB<>-1 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 BEGIN LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 SET @strSQL = @strSQL + ' AND BB= @ckBB' LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 END LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 IF @BuyType<>-1 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 BEGIN LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 SET @strSQL = @strSQL + ' AND BuyType= @ckBuyType' LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 END LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 IF @FunctionState<>-1 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 BEGIN LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 SET @strSQL = @strSQL + ' AND FunctionState= @ckFunctionState' LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 END LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 --- Add Where Key Word --- LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 --- Run SQL Begin --- LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 EXECUTE sp_executesql @strSQL, LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 N' @ckScoreSettingID INT, LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 @ckFunctionID INT, LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 @ckOperationID INT, LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 @ckRoleTypeID INT, LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 @ckBBSTypeID INT, LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 @ckScore INT, LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 @ckBB INT, LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 @ckBuyType INT, LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 @ckFunctionState INT', LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 @ckScoreSettingID=@ScoreSettingID, LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 @ckFunctionID=@FunctionID, LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 @ckOperationID = @OperationID, LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 @ckRoleTypeID = @RoleTypeID, LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 @ckBBSTypeID = @BBSTypeID, LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 @ckScore = @Score, LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 @ckBB = @BB, LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 @ckBuyType = @BuyType, LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 @ckFunctionState = @FunctionState LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 --- Run SQL End --- LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 一点说明: LE3Linux联盟 LE3Linux联盟 此存储过程会根据数据层的类有没有传递相应的参数值进来而动态创建查询语句,然后用系统自带的存储过程执行sql语句,用系统存储过程执行sql语句的好处是可以自动转义字符。而动态创建查询语句的好处,就非常大了,这会省下我们写很多种条件判断,尤其是对那些字段比较多的表来讲,一个排列组合下来的情况太多了,而利用存储过程动态创建sql语句所作的判断数和字段数基本上是一致的,这里会给入参赋初始值,如果不等于初始值就说明数据层类有传递参数进来,这样就加上相应条件字符的查询条件。 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 二、 数据层类: LE3Linux联盟 LE3Linux联盟 using System; LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 using System.Collections; LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 using System.Data; LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 using System.Data.SqlClient; LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 using Town.Data; LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 using Town.Log; LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 namespace Town.Com LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 { LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 /// LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 /// 功能:积分设置集合类 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 /// 作者:Kelvin Yu LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 /// 创建日期:2004-01-14 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 /// 修改者: LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 /// 修改日期: LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 /// LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 public class ScoreSettingCollection LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 { LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 #region 私有成员 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 private ArrayList members; LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 #endregion LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 #region 构造函数 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 /// LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 /// 构造函数 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 /// LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 public ScoreSettingCollection() LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 { LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 } LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 #endregion LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 #region 公共属性 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 /// LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 /// Operation对象的个数 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 /// LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 public int Count LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 { LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 get LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 { LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 if( members != null ) LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 return members.Count; LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 else LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 return 0; LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 } LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 } LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 #endregion LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 #region 索引 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 /// LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 /// 索引 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 /// LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 public ScoreSetting this[int index] LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 { LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 get LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 { LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 if ( members != null ) LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 return (ScoreSetting)( members[index] ); LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 else LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 return null; LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 } LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 } LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 #endregion LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 #region 私有方法 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 /// LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 /// 添加Operation到OperationCollection集合 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 /// LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 private void Add(ScoreSetting scoreSetting) LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 { LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 if ( members == null ) LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 members = new ArrayList(); LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 members.Add( scoreSetting ); LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 } LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 #endregion LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 #region 公共方法 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 /// LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 /// 根据不同条件取得积分设置 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 /// LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 /// 功能ID LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 /// 操作ID LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 /// 角色ID LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 /// 版块类型DI LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 /// 积分 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 /// 币币 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 /// 购买类型 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 /// 功能状态 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 /// LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 public bool GetSpecialInfo(int functionID,int operationID,int roleTypeID,int bBSTypeID,int score,int bB,int buyType,int functionState) LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 { LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 SqlDataAdapter dataAdapter = null; LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 Database data = new Database("Town"); LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 #region 创建参数 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 ArrayList sqlParameterList=new ArrayList(); LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 if(functionID!=-1) LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 sqlParameterList.Add(data.MakeInParam("@FunctionID", SqlDbType.Int, 4, functionID)); LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 if(operationID!=-1) LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 sqlParameterList.Add(data.MakeInParam("@OperationID", SqlDbType.Int, 4, operationID)); LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 if(roleTypeID!=-1) LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 sqlParameterList.Add(data.MakeInParam("@RoleTypeID", SqlDbType.Int, 4, roleTypeID)); LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 if(bBSTypeID!=-1) LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 sqlParameterList.Add(data.MakeInParam("@BBSTypeID", SqlDbType.Int, 4, bBSTypeID)); LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 if(score!=-1) LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 sqlParameterList.Add(data.MakeInParam("@Score", SqlDbType.Int, 4, score)); LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 if(bB!=-1) LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 sqlParameterList.Add(data.MakeInParam("@BB", SqlDbType.Int, 4, bB)); LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 if(buyType!=-1) LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 sqlParameterList.Add(data.MakeInParam("@BuyType", SqlDbType.Int, 4, buyType)); LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 if(functionState!=-1) LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 sqlParameterList.Add(data.MakeInParam("@FunctionState", SqlDbType.Int, 4, functionState)); LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 SqlParameter[] prams= new SqlParameter[sqlParameterList.Count]; LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 for( int i=0;i LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 { LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 prams[i]=(SqlParameter)sqlParameterList[i]; LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 } LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 #endregion LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 try LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 { LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 data.RunProc("GetScoreSetting", prams, out dataAdapter); LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 DataSet dataSet = new DataSet(); LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 dataAdapter.Fill(dataSet,"table"); LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 dataAdapter.Dispose(); LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 if(dataSet.Tables["table"].Rows.Count == 0) LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 { LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 dataSet.Clear(); LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 dataSet.Dispose(); LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 return false; LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 } LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 else LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 { LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 foreach(DataRow dr in dataSet.Tables["table"].Rows) LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 { LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 ScoreSetting SS = new ScoreSetting(); LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 SS.ID= Int32.Parse(dr["ScoreSettingID"].ToString().Trim()); LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 SS.FunctionID= Int32.Parse(dr["FunctionID"].ToString().Trim()); LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 SS.OperationID= Int32.Parse(dr["OperationID"].ToString().Trim()); LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 SS.RoleTypeID= Int32.Parse(dr["RoleTypeID"].ToString().Trim()); LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 SS.BBSTypeID= Int32.Parse(dr["BBSTypeID"].ToString().Trim()); LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 SS.Score= Int32.Parse(dr["Score"].ToString().Trim()); LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 SS.BB= Int32.Parse(dr["BB"].ToString().Trim()); LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 SS.BuyType= Int32.Parse(dr["BuyType"].ToString().Trim()); LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 SS.FunctionState= Int32.Parse(dr["FunctionState"].ToString().Trim()); LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 Add(SS); LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 } LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 dataSet.Clear(); LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 dataSet.Dispose(); LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 return true; LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 } LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 } LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 catch (Exception ex) LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 { LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 Error.Log("Town", ex.ToString()); LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 dataAdapter.Dispose(); LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 return false; LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 } LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 finally LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 { LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 data.Close(); LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 data.Dispose();//释放Database LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 } LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 } LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 #endregion LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 } LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 } LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 一点说明: LE3Linux联盟 LE3Linux联盟 数据层类分类的代码分了六块:私有成员、构造函数、公共属性、索引、私有方法、公有方法。这里为类建立了索引,这是集合类的必须元素。然后有一个私有方法,作用是把对象加到集合中,公有方法就是一个查询方法,上面的例子中是通过参数传的,其实也可以用属性传。这里作了个约定,如果传进的值为-1便认为此变量不起作用,基本跟存储过程中的思想是一样的。这个例子中的ScoreSetting对象是另外一个独立的类,如下: LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 using System; LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 using System.Data; LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 using System.Data.SqlClient; LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 using Town.Data; LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 using Town.Log; LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 using System.Collections; LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 namespace Town.Com LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 { LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 /// LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 /// 功能:积分类 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 /// 作者:Kelvin Yu LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 /// 创建日期:2004-01-14 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 /// 修改者: LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 /// 修改日期: LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 /// LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 public class ScoreSetting LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 { LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 #region 私有成员 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 /// LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 /// 分值设置ID LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 /// LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 private int id=-1; LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 /// LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 /// 功能ID LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 /// LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 private int functionID=-1; LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 /// LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 /// 操作ID LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 /// LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 private int operationID=-1; LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 /// LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 /// 角色类型ID LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 /// LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 private int roleTypeID=-1; LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 /// LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 /// 版块类型ID LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 /// LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 private int bBSTypeID=-1; LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 /// LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 /// 积分 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 /// LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 private int score=-2000000000; LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 /// LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 /// 币币 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 /// LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 private int bB=-2000000000; LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 /// LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 /// 购买类型 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 /// LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 private int buyType=-1; LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 /// LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 /// 功能状态 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 /// LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 private int functionState=-1; LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 LE3Linux联盟 /// LE3Linux联盟 | |