#region 公共方法
 /// <summary>
 /// 根據不同條件取得積分設置
 /// </summary>
 /// <param name="functionid">功能id</param>
 /// <param name="operationid">操作id</param>
 /// <param name="roletypeid">角色id</param>
 /// <param name="bbstypeid">版塊類型di</param>
 /// <param name="score">積分</param>
 /// <param name="bb">幣幣</param>
 /// <param name="buytype">購買類型</param>
 /// <param name="functionstate">功能狀態</param>
 /// <returns></returns>
 public bool getspecialinfo(int functionid,int operationid,int roletypeid,int bbstypeid,int score,int bb,int buytype,int functionstate)
 {
 sqldataadapter dataadapter = null;
 database data = new database("town");
 #region 創建參數
 arraylist sqlparameterlist=new arraylist();
 if(functionid!=-1)
 sqlparameterlist.add(data.makeinparam("@functionid", sqldbtype.int, 4, functionid));
 if(operationid!=-1)
 sqlparameterlist.add(data.makeinparam("@operationid", sqldbtype.int, 4, operationid));
 if(roletypeid!=-1)
 sqlparameterlist.add(data.makeinparam("@roletypeid", sqldbtype.int, 4, roletypeid));
 if(bbstypeid!=-1)
 sqlparameterlist.add(data.makeinparam("@bbstypeid", sqldbtype.int, 4, bbstypeid));
 if(score!=-1)
 sqlparameterlist.add(data.makeinparam("@score", sqldbtype.int, 4, score));
 if(bb!=-1)
 sqlparameterlist.add(data.makeinparam("@bb", sqldbtype.int, 4, bb));
 if(buytype!=-1)
 sqlparameterlist.add(data.makeinparam("@buytype", sqldbtype.int, 4, buytype));
 if(functionstate!=-1)
 sqlparameterlist.add(data.makeinparam("@functionstate", sqldbtype.int, 4, functionstate));
 
 sqlparameter[] prams= new sqlparameter[sqlparameterlist.count];
 for( int i=0;i<sqlparameterlist.count;i++)
 {
 prams[i]=(sqlparameter)sqlparameterlist[i];
 }
 #endregion
 try
 {
 data.runproc("getscoresetting", prams, out dataadapter);
 dataset dataset = new dataset();
 dataadapter.fill(dataset,"table");
 dataadapter.dispose();
 if(dataset.tables["table"].rows.count == 0)
 {
 dataset.clear();
 dataset.dispose();
 return false;
 }
 else
 {
 
 foreach(datarow dr in dataset.tables["table"].rows)
 {
 scoresetting ss = new scoresetting();
 ss.id= int32.parse(dr["scoresettingid"].tostring().trim());
 ss.functionid= int32.parse(dr["functionid"].tostring().trim());
 ss.operationid= int32.parse(dr["operationid"].tostring().trim());
 ss.roletypeid= int32.parse(dr["roletypeid"].tostring().trim());
 ss.bbstypeid= int32.parse(dr["bbstypeid"].tostring().trim());
 ss.score= int32.parse(dr["score"].tostring().trim());
 ss.bb= int32.parse(dr["bb"].tostring().trim());
 ss.buytype= int32.parse(dr["buytype"].tostring().trim());
 ss.functionstate= int32.parse(dr["functionstate"].tostring().trim());
 add(ss);
 }
 
 dataset.clear();
 dataset.dispose();
 
 return true;
 }
 }
 catch (exception ex)
 {
 error.log("town", ex.tostring());
 dataadapter.dispose();
 return false;
 }
 finally
 {
 data.close();
 data.dispose();//釋放database
 }
 }
 #endregion
 
 }
}
 
一點說明:
數據層類分類的代碼分了六塊:私有成員、構造函數、公共屬性、索引、私有方法、公有方法。這里為類建立了索引,這是集合類的必須元素。然后有一個私有方法,作用是把對象加到集合中,公有方法就是一個查詢方法,上面的例子中是通過參數傳的,其實也可以用屬性傳。這里作了個約定,如果傳進的值為-1便認為此變量不起作用,基本跟存儲過程中的思想是一樣的。這個例子中的scoresetting對象是另外一個獨立的類,如下: