欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
.net 通用數據庫概念
一: asp.net通用數據庫訪(fǎng)問(wèn)層源碼之公用屬性

  公共屬性

  公共屬性在CBaseConfig類(lèi)別中,可以在程序中可以直接以CBaseConfig.appRoot取得)

  1. appRoot

  string, 應用程序物理路徑(格式:c:\myDir\)

  2. VirtualPath

  string,應用程序虛擬路徑(格式:/myWeb/)

  3. EncryptKey

  string,用于加密資料的密鑰

  4. IsCache

  bool, true/false(default)從數據庫中取的數據是否使用cache。

  5. SqlCacheDependPath

  string, 從數據庫中取的數據cache依的目錄(格式:c:\myDir\)

  6. SmtpServer

  string, 發(fā)送e-mail的SMTP服務(wù)器名稱(chēng)或IP地址

  7. AllViewCount

  int, 訪(fǎng)問(wèn)系統的總人次數。

  8. DayViewCount

  int, 訪(fǎng)問(wèn)系統的當日人次數。

  9. AppVersion

  String, WEB應用程序當前版本,格式:V版本號.年月日.時(shí)分,如V3.20050820.1403,表示版本號是3,最后更新日期是2005/8/20 14:03

  10. EnablePageCache

  bool, true(default)/false使用/不使用頁(yè)面catch

  11. PageCacheExpiresInSeconds

  int, 頁(yè)面catch過(guò)期時(shí)長(cháng)(秒,default 3600)

  12. EnableSsl

  bool, true/false(default)是否使用SSL加密傳送數據

  二: asp.net通用數據庫訪(fǎng)問(wèn)層源碼之公共函數

  公共函數

  公共方法在CBaseConfig類(lèi)別中,在程序中直接以CBaseConfig.ReadStting()調用。

  1. OnApplicationStart

  OnApplicationStart (stringprojectDLL)---初始化CbaseConfig類(lèi),必須在Global.asax.cs的Application_Start(Objectsender, EventArgs e)中執行

  projectDLL=WEB程序主DLL文件(不含路徑),該DLL在每次修改時(shí)都要變,一般是WEB項目名的DLL(用于版本計算)

  2. OnApplicationEnd

  OnApplicationEnd()—系統結束時(shí),調用該函數,清除所有資源

  3. AddViewCount

  AddViewCount(string countKey)-- 累加計數值(訪(fǎng)問(wèn)系統的人數)。

  返回累加后的總計數值(AllViewCount=總的計數值,DayViewCount=當日計數值)

  countKey=在系統設定文件(AppSetting.xml)中的計數值的key。

  4. RemoveAllCache

  RemoveAllCache()--清除所有Cache(不清除系統使用的cache(以'PSYS_'開(kāi)頭))

  5. ReadWebConfig

  ReadWebConfig(string key, stringdefaultValue)—從WEB.Config文件中的<appSettings>中取參數值

  key=web.config文件中<appkey=’’>中的key值,

  defaultValue=默認值,如果沒(méi)有設定則用該值。

  6. ReadAppConfig

  ReadAppConfig(string key, objectdefaultValue)—從系統配置文件(WebFrame.config)中讀取參數值

  key=<app key=’’>中的key值,defaultValue=默認值,如果沒(méi)有設定則用該值

  7. ReadSetting

  ReadSetting(string key, objectdefaultValue)—從系統設定文件(AppSetting.xml)中讀取參數值

  key=<app key=’’>中的key值,defaultValue=默認值,如果沒(méi)有設定則用該值

  8. WriteSetting

  WriteSetting(string key, stringsetting)—將key加入系統配置文件(AppSetting.xml)中(如果沒(méi)有該key則生成)。(存入后,格式為:<appkey=’’ value=’’/>),成功返回true,失敗返回false

  key=<app key=’’>中的key值,defaultValue=默認值,如果沒(méi)有設定則用該值

  9. SaveSetting

  SaveSetting()—WriteSetting()并沒(méi)有保存加入的key,當所有key加完后,調用該函數來(lái)保存。成功返回true,失敗返回false.

  10. GetMessage

  GetMessage(string MsgId, stringLanguageName)—取提示信息內容,該信息放在XML文件中(該文件由配置文件(WebFrame.config)中<appSettings>中key="Web.MsgPath"的值及語(yǔ)言決定,文文件放在Web.MsgPath下,文件名是語(yǔ)言名.xml如zh-CHS.xml)

  MsgId=信息ID,請參考WebFrameMsg.xml

  LanguageName=使用的言語(yǔ)特性(不設定或為空,則使用系統設定zh-CHT),zh-CHT版 ;zh-CHS 簡(jiǎn)體版;en 英文版 ja-JP 日文版

  11. CreateJSMsg

  CreateJSMsg(string[] MsgIds, string LanguageName, booladdScript)--生成JS顯示的訊息(從訊息文件(*.xml)中取),這些訊息在JS函數中使用。

  返回格式:<scriptlanguage='javascript'>S0001="xxx";S0002="xxx";...</script>

  MsgIds=要生成的訊息ID,多個(gè),這些訊息在訊息文件中(如zh-CHS.xml)。

  LanguageName=使用的言語(yǔ)特性(不設定或為空,則使用系統設定zh-CHT),zh-CHT 繁體版 ;zh-CHS 簡(jiǎn)體版;en 英文版 ja-JP 日文版

  addScript=true(預設):結果加上<scriptlanguage='javascript'></script>

  12. ExecuteJS

  ExecuteJS(string jsCodes)--執行一段JS代碼。返回含<script>的jsCodes代碼。

  jsCodes=要執行的JS代碼,必須是正確的、完整的代碼,不含<scriptlanguage='javascript'>

  13. ShowJsMsg

  ShowJsMsg(string msg, string url, boolIsBack)—顯示指定的訊息,并返回指定頁(yè)面。

  msg=要顯示的訊息,如果為空則顯示no message.

  url=返回的頁(yè)面url,=null或'':返回上一頁(yè)面history.go(-1),只有一個(gè)數字:返回history.go(-url),以');'或')'結束:url=JS函數,其它:url=返回的頁(yè)面url

  IsBack= true:返回指定的url頁(yè)面,false:不返回.

  三: asp.net通用數據庫訪(fǎng)問(wèn)層源碼

  1.在WEB系統的根目錄下建一個(gè)存放系統配置文件的目錄(如AppConfig),設定為只讀,WEB無(wú)任何權限(在IIS管理員中設定)。同時(shí)建如下子目錄:

  (1) data—存放SQL配置文件(如TB_Users.xml)。

  (2) msg—存放系統訊息文件(如zh-CHS.xml)

  (3) log—存放系統錯誤日志文件,必須有寫(xiě)入權限。

  (4) setting—存放系統設定文件(如AppSetting.xml) ,必須有寫(xiě)入權限。

  2. 設定系統配置文件(WebFrame.config)及Web.config。

  3. 在Global.asax.cs文件中:

  (1) 加入:using WebFrame.Config;

  (2) 在A(yíng)pplication_Start()中:

  CBaseConfig.OnApplicationStart(Context.Cache,

  Context.Server.MapPath(Context.Request.Application Path),

  Context.Request.ApplicationPath,”project.dll”);

  (3) 在Session_Start()中:

  CBaseConfig.AddViewCount("App.UserCount"); //計數器+1

  (4) 在A(yíng)pplication_Error()和Application_End()中:

  CBaseConfig.OnApplicationEnd();

  4.

  架構

  WebFrame架構目前有以下幾個(gè)名字空間(以后也許還會(huì )擴充):

  1.WebFrame.Base:包含CBaseDAO、CBaseDAOContext、CSecurity、CMail等類(lèi)別

  2.WebFrame.Config:包含CBaseConfig、CEncrypt、CWebFrameException等類(lèi)別。

  3. WebFrame.DB:包含所有對數據庫操作的類(lèi)別,請參考CDBConn.doc說(shuō)明

  4. WebFrame.UserServices:包含對用戶(hù)數據、權限數據等操作的所有類(lèi)別。

  5. WebFrame.UserSimple:包含對用戶(hù)數據、簡(jiǎn)單權限數據等操作的類(lèi)別。

  6. WebFrame.UI:包含前端頁(yè)面使用的公用類(lèi)別。

  7. WebFrame.File:包含文件上載、下載操作的所有類(lèi)別

  8. WebFrame.OWC:包含用MS OWC11生成統計圖的類(lèi)別

  其中WebFrame.Config、WebFrame.DB、WebFrame.Base是最基本、也是必須的。

  使用WebFrame來(lái)開(kāi)發(fā)WEB項目/項目時(shí),至少分2層(2個(gè)項目/項目),業(yè)務(wù)邏輯層和接口層:

  1.業(yè)務(wù)邏輯層:包含所有業(yè)務(wù)邏輯層的類(lèi)別庫(項目/項目),該類(lèi)別庫的所有類(lèi)別都繼承CBaseDAO或CBaseSimpleDAO、CRightDAO類(lèi)別。類(lèi)別庫中至少包含WebFrame.Base、WebFrame.Config、WebFrame.DB三個(gè)名字空間,如果需要用到用戶(hù)及權限數據,還必須包含WebFrame.UserSimple或 WebFrame.UserServices。

  在一般應用中,業(yè)務(wù)邏輯層類(lèi)別庫中只需要用CEntityDAO類(lèi)別來(lái)操作數據庫就夠了:

  CEntityDAO dao=new CEntityDAO("my.xml",m_LanguageName);

  DataSet ds= dao.SearchDataset("SqlName");

  …………

  如果CEntityDAO類(lèi)別不能滿(mǎn)足要求,或對效能要求比較高,可直接使用CDBConn類(lèi)別來(lái)操作數據庫:

  CDBConn dbConn=CDBConn.Instance(m_ConnKey,m_LanguageName);

  dbConn.Open();

  dbConn.BeginTrans(); //開(kāi)始事務(wù)

  dbConn. ExecuteNonQuery(strSql);

  …… //其它方法

  dbConn.CommitTrans();

  dbConn.Close();

  …………

  當使用CEntityDAO類(lèi)別時(shí),系統用到的所有SQL語(yǔ)句全部保存在XML格式的多個(gè)配置文件中(請用DBMap.exe來(lái)維護)。一個(gè)業(yè)務(wù)邏輯類(lèi)用一個(gè)配置文件中(將該類(lèi)用到的所有SQL全部放到一個(gè)文件中),這樣有多少個(gè)業(yè)務(wù)類(lèi),就應該有多少個(gè)配置文件。SQL名稱(chēng)最好與類(lèi)別中的方法名稱(chēng)相同,這樣維護起來(lái)比較方便。

  類(lèi)別說(shuō)明及詳細使用方法請參考<CDBConn.doc>、<CEntityDAO.doc>、<CBaseDAO.doc>。

  2.界面層:在前端接口項目/項目(WEB應用程序)中,至少包含WebFrame.Base、WebFrame.Config,其它可根據需要加入。

  在接口層的ASPX或HTM頁(yè)面中,存取參數值(數據表字段值)的form元素的名稱(chēng)必須和參數名(數據表id)相同,這樣就可以用如下方法取得參數值,然后傳到業(yè)務(wù)邏輯類(lèi)別中:

  (1) DataSet paramDataset=new DataSet;

  paramDataset.ReadXml(Request.InputStream);

  (2) NameValueCollection paramValues=newNameValueCollection();

  paramValues.Add(Request.Form);

  paramValues.Add(Request.QueryString)

  CSimpleUser myCls=new CSimpleUser(); //業(yè)務(wù)邏輯層類(lèi)別

  myCls.SetLanguage(LanguageName); //設定使用的言語(yǔ)

  myCls.InsertRole(paramValues); //新增角色資料

  或

  myCls.InsertRole(paramDataset); //新增角色資料

  在WebFrame.UI中提供了一些前端接口用的公用類(lèi)別,可根據情況使用或繼承這些類(lèi)別(也可不用),其中PageBaseDAO類(lèi)別已經(jīng)包含以上的paramDataset和paramValues參數,直接使用即可

  四: asp.net通用數據庫訪(fǎng)問(wèn)層源碼之權限

  權限

  WebFrame包含完整的用戶(hù)數據維護和權限維護功能,包括用戶(hù)、群組、角色、級別,從簡(jiǎn)單到復雜的系統都能滿(mǎn)足。注意:TB_Function表中的SqlName字段,用于設定該功能使用的SqlName(在sql配置文件中),格式是: sql配置文件名/SqlName,多個(gè)用“,(逗號)”隔開(kāi)(如:TB_User.xml/Insert,TB_Role.xml/Insert),如果該功能只用配置文件,則只輸入配置文件名(如:TB_User.xml,TB_Role.xml)。如果該功能沒(méi)有對應的Sql名或配置文件名,則可指定一個(gè)唯一的名稱(chēng)(如1001,Users),或功能編號(FuncNo),在程序中用myRight(SqlName)來(lái)判斷是否有權限,其中的SqlName就是TB_Function表中的SqlName字段指定的名稱(chēng)或編號。

  根據需要,又分為簡(jiǎn)單和完全權限2種:

  1.

  簡(jiǎn)單權限:所有功能都放在WebFrame.UserSimple名字空間中,有3個(gè)類(lèi)別(CUser,CRole,CFunction)(配置文件是TB_SimpleUser.xml,TB_SimpleUser.xml,TB_SimpleUser.xml)。沒(méi)有群組和角色級別功能,一個(gè)用戶(hù)只有一個(gè)角色(或當作群組),權限只有允許(查詢(xún)、新增、修改、刪除)/不允許。用于對權限要求比較簡(jiǎn)單的系統。

  用到的資料表有:TB_Function、TB_Role、TB_RoleRight、TB_Users等4個(gè)。

  用到的存儲過(guò)程有:

  (1) UP_TB_RoleRight_GetRightById(共享)

  (2) UP_Simple_GetMenuByFuncNo(簡(jiǎn)單權限專(zhuān)用)

  (3) UP_Simple_GetUserRight(簡(jiǎn)單權限專(zhuān)用)

  (4) UP_Simple_GetRoleRight(簡(jiǎn)單權限專(zhuān)用)

  (5) UP_Simple_SetRoleRight(簡(jiǎn)單權限專(zhuān)用)

  (6) UP_Simple_Login(簡(jiǎn)單權限專(zhuān)用)

  (7) UP_TB_RoleRight_GetRoleRight(共享)(不用)

  (8) UP_TB_Function_DelAllFuncByNo(共享)(不用)

  用到的函數:UF_TB_Users_GetUserCountByGroup(公用)(可選,用于取得該群組的用戶(hù)數)

  2.

  完全權限:具有完整的、復雜的權限控制功能,包括群組、角色級別。權限不僅有允許(1查詢(xún)、2新增、3修改、4刪除)/不允許,還有群組范圍、角色(職務(wù))級別控制。用于對權限要求高的系統,如OA系統、工作流等。包含在WebFrame.UserServices中的所有類(lèi)別中。

  使用的配置文件有:TB_code.xml、TB_function.xml、TB_group.xml、TB_role.xml、TB_user.xml。

  用到的數據表(所有以TB_開(kāi)頭的數據表)。除包括簡(jiǎn)單權限用到的數據表外,還用到:TB_CdType、TB_Codes、TB_Group、TB_GroupInRole、TB_RoleLevel。

  用到的存儲過(guò)程(所有以UP_TB_開(kāi)頭的存儲過(guò)程,但不含“簡(jiǎn)單權限專(zhuān)用”,共26個(gè))。

  用到的函數(所有以UF_TB_開(kāi)頭的函數:UF_TB_Role_GetGroupRole、UF_TB_Role_GetUserRole,UF_TB_Users_GetUserCountByGroup,共3個(gè))。

  五: asp.net通用數據庫訪(fǎng)問(wèn)層源碼之多語(yǔ)言

  多語(yǔ)言版

  WebFrame 支持多國語(yǔ)言顯示,但必須遵守以下原則:

  1.

  所有需要顯示多國語(yǔ)言的信息,都保存在XML文件中(格式參考zh-CHT.xml,在程序中用CbaseConfig.GetMessage(MsgId)取得要顯示的信息),一個(gè)語(yǔ)言版本保存一個(gè)XML文件,文件名用語(yǔ)言特性名(如繁體中文zh-CHT.xml,其它請參考CultureInfo類(lèi)別說(shuō)明),并統一放在一個(gè)目錄下,在配置文件(WebFrame.config)中指定該目錄。(參閱WebFrame.config)。

  2.

  如果一個(gè)語(yǔ)言用一個(gè)數據庫(數據庫結構必須完全一樣),則數據庫的ConnKey后必須加上“.言語(yǔ)名稱(chēng)”。

  如“DB.ConnString.zh-CHS”或“DB.ConnString_DbType.zh-CHS”,但在指定ConnKey時(shí),不用“.言語(yǔ)名稱(chēng)”,如只用DB.ConnString。

  3.

  web.config中設定使用utf-8編碼,如下:

  <globalization requestEncoding="utf-8"responseEncoding="utf-8" />

  所有文件最好都保存為“utf-8(有簽章)”的格式。

  4.

  在用QueryString傳送中文時(shí),必須先進(jìn)行編碼:

  (1)

  在CS中用HttpUtility.UrlEncode(string),或用Server.UrlEncode(string)來(lái)編碼,(不要用HttpUtility.HtmlEncode(string)或Server.HtmlEncode(string))。

  (2)

  在JS中用escape(string)來(lái)編碼。

  (3)

  在JS中接收用(string)譯碼,在CS中接收不用譯碼,直接使用,如:

  string s=Request[“s”];

  或string s=Request.Params[“s”] ;

  5.

  采用下列2種方法來(lái)實(shí)現多言語(yǔ)版本:

  (1)

  每個(gè)言語(yǔ)有不同的界面程序(ASPX),并放到不同的目錄中,如簡(jiǎn)體版放到 chs目錄,繁體版放到cht目錄,每個(gè)目錄下都有一個(gè)web.config文件,用于設定該目錄使用的言語(yǔ)(只有該行設定):

  <?xml version="1.0" encoding="utf-8"?>

  <configuration>

  <appSettings>

  <add key="Web.Language" value="zh-CHT"/>

  </appSettings>

  </configuration>

  在程序中用GetMessage(MsgId)取得系統顯示訊息。

  此方法用于不同的言語(yǔ),界面程序不一樣的系統。

  (2)

  當不同言語(yǔ)使用同一界面程序(ASPX)時(shí),界面程序類(lèi)(ASPX.CS)繼承MultiLangPage.cs類(lèi)(在WebFrame.UI中),用LanguageName=’言語(yǔ)名稱(chēng)’來(lái)指定使用的言語(yǔ)(只需用一次),然后可用LanguageName取得該用戶(hù)當前使用的言語(yǔ),在程序中用MultiLangPage的GetMessage(MsgId)和CreateJSMsg(MsgIds)來(lái)取得系統顯示訊息(頁(yè)面中,需要多言語(yǔ)的文字都放在訊息文件中)。在使用業(yè)務(wù)邏輯類(lèi)時(shí),必須用SetLanguage(LanguageName)來(lái)指定使用的言語(yǔ)。在使用CDBConn、CEntityDAO及CBaseDAO時(shí),也要顯示指定言語(yǔ)名稱(chēng)LanguageName。

  6.

  WebFrame只解決程序中顯示信息的多國語(yǔ)言的問(wèn)題,而要完全解決多國語(yǔ)言的問(wèn)題,必須在設計數據庫時(shí)就要考慮(可采用一種言語(yǔ)用一個(gè)數據庫來(lái)保存,數據庫結構要一樣)。

  global.asax.cs protected void Application_Start(Object sender,EventArgs e)

  ...{

  CBaseConfig.OnApplicationStart("project.dll");

  }

  protected void Application_Error(Object sender, EventArgse)

  ...{

  CBaseConfig.OnApplicationEnd();

  }

  protected void Application_End(Object sender, EventArgs e)

  ...{

  CBaseConfig.OnApplicationEnd();

  }

  protected void Session_Start(Object sender, EventArgs e)

  ...{

  CBaseConfig.AddViewCount("UserCount");//計數值

  …

  }

  web.config

  Web.config之a(chǎn)ppSettings配置說(shuō)明

  <system.web>

  ……

  <!--設定上傳檔案最大K數(<20M)-->

  <httpRuntime maxRequestLength="20000"executionTimeout="180" />

  </system.web>

  <appSettings>

  <!—系統配置文件名(如果是物理路徑,則必須有:\的符號(如c:aa.xml),否則以網(wǎng)站根目錄為準,但不包含根路徑(如myDir\aa.xml),預設是網(wǎng)站根目錄下的AppConfig\WebFrame.config)-->

  <add key="WebFrame.Config" value=""/>

  <!--使用的言語(yǔ)特性(不設定或為空,則使用系統設定zh-CHT),zh-CHT 繁體版;zh-CHS 簡(jiǎn)體版 ;en 英文版 ja-JP 日文版-->

  <add key="Web.Language" value="zh-CHT"/>

  </appSettings>

  六: asp.net通用數據庫訪(fǎng)問(wèn)層源碼之CDBConn類(lèi)

  數據庫訪(fǎng)問(wèn)接口類(lèi),該類(lèi)可訪(fǎng)問(wèn)不同數據庫系統,使用時(shí)只調其Instance(ConnString)即可。該類(lèi)在WebFrame.DB名字空間里

  使用方法

  屬性說(shuō)明

  1 Connection

  IdbConnection,數據庫連接對象。

  函數說(shuō)明

  1 Instance()

  根據WebFrame.config中設定的數據庫連接字符串,生成CDBConn實(shí)例。返回CDBConn對象。

  (1) Instance()---用CBaseConfig.ConnString的數據庫連接參數和預設語(yǔ)言名打開(kāi)數據庫

  (CBaseConfig.ConnString在配置文件(WebFrame.xml)中設置)

  (2) Instance(string ConnKey,stringLanguageName)---用ConnKey指定的數據庫連接參數和LanguageName打開(kāi)數據庫

  ConnKey=數據庫連接字符串的key(在WebFrameconfig中指定的),該key不包含語(yǔ)言名稱(chēng)。如:DB.ConnString.zh-CHS表示 ConnKey=DB.ConnString,LanguageName=zh-CHS

  如果WebFrameconfig中的key值不包含語(yǔ)言名稱(chēng),則ConnKey=WebFrameconfig中的key值。

  LanguageName =使用的語(yǔ)言名稱(chēng),主要用于多國語(yǔ)言(當一個(gè)語(yǔ)言用一個(gè)數據庫時(shí)),語(yǔ)言名稱(chēng)用.net格式(如:zh-CHT繁體版 ;zh-CHS 簡(jiǎn)體版 ;en英文版)。WebFrame.config中數據庫連接字符串的key值包含該語(yǔ)言名稱(chēng),如DB.ConnString.zh-CHS的語(yǔ)言名稱(chēng)是zh-CHS。

  2 Open()

  Open()---打開(kāi)數據庫,沒(méi)有返回值。

  3 Close()

  Close()---關(guān)閉數據庫,沒(méi)有返回值。

  4 IsOpen()

  IsOpen()—判斷數據庫是否已經(jīng)打開(kāi),返回值:true=是

  5 BeginTrans()

  BeginTrans()---開(kāi)始事務(wù)處理,沒(méi)有返回值。

  6 CommitTrans()

  CommitTrans()---提交事務(wù)處理,沒(méi)有返回值。

  7 RollbackTrans()

  RollbackTrans()---撒消事務(wù)處理,沒(méi)有返回值。

  8 ExecuteNonQuery()

  執行SQL語(yǔ)句,對于Insert,Update,Delete返回影響的數據筆數,對于其它SQL,返回-1或0,錯誤返回-2

   cmd=要執行的IdbCommand變量,包含參數值(請用CDbCmd類(lèi)的DbCmd取得)

   strSql=要執行的完整SQL語(yǔ)句(如:select * from tab where id=1)。

   sql=要執行的CSqlStruct對象 (請用CEntityBuilder類(lèi)的GetSqlStruct取得)

  dtVal=DataTable類(lèi)型,保存cmd的參數值(一筆數據對應一個(gè)參數值,可執行多個(gè)參數值,DataTable列名與參數名相同)。

  paramValue=NameValueCollection類(lèi)型,保存cmd的參數值。name=參數名(與cmd中的參數名相同),value=參數值

  xmlVal=參數保存在XML格式的字符中,格式:<r><paramNamevalue='11'/>...</r>。當只有一個(gè)參數時(shí),xmlVal=參數值

   paramVal=object數組,保存參數值,與參數名的個(gè)數和順序相同(cmd中的參數個(gè)數和順序相同)。

  9 ExecuteScalar()

  執行SQL語(yǔ)句,返回第一行第一列的值。

   參數說(shuō)明請參考ExecuteNonQuery()。

  10 ExecuteProcedure()

  執行存儲過(guò)程,結果保存在NameValueCollection類(lèi)型中,name=返回參數名,value=返回參數值,失敗返回null。

   procName=要執行的存儲過(guò)程名,該存儲過(guò)程沒(méi)有參數,如果成功則返回true。

   其它參數說(shuō)明請參考ExecuteNonQuery()。

  11 ExecuteProcScalar()

  執行存儲過(guò)程,返回第一個(gè)返回值或返回參數的值,失敗返回null。

   procName=要執行的存儲過(guò)程名,該存儲過(guò)程沒(méi)有參數,返回存儲過(guò)程返回值。

   其它參數說(shuō)明請參考ExecuteNonQuery()。

  12 ExecuteDataset ()

  執行語(yǔ)句,成功返回DataSet,失敗返回null。

   TableName=DataSet中的資料表名,預設是Table1。

   其它參數說(shuō)明請參考ExecuteNonQuery().

  13 ExecuteReader ()

  執行語(yǔ)句,成功返回IdataReader,失敗返回null。

   參數說(shuō)明請參考ExecuteNonQuery()。

  14 GetMaxValue()

  取數據表指定字段的最大值,一般是取主鍵的最大值,成功返回取到的最大值,失敗返回0

  TableName=數據表名,取哪個(gè)數據表的字段。

  ColName=字段名,取哪個(gè)字段的最大值,該字段必須是數字型.

  CSqlDBCon類(lèi)

  訪(fǎng)問(wèn) Sql server數據庫類(lèi),繼承CDBConn,并實(shí)現CDBConn中的方法。Client不直接使用該類(lèi)。

  COleDBConn類(lèi)

  訪(fǎng)問(wèn) Sql server以外的其它數據庫系統(同CSqlDBConn)

  CEntityBuilder類(lèi)

  用于由SQL配置文件中產(chǎn)生SQL語(yǔ)句。該類(lèi)在WebFrame.DB名字空間里

  使用方法

  CEntityBuilder builder=newCEntityBuilder(m_EntityFileName);

  CSqlStruct sql=builder.GetSqlStruct(SqlName);

  CDBConn conn=CDBConn.Instance(ConnKey,LanguageName);

  conn.Open();

  conn.ExecuteNonQuery(sql);

  conn.Close();

  函數說(shuō)明

  1 CEntityBuilder()

  CEntityBuilder(string EntityFileName)-- 構造函數。

   EntityFileName=配置文件名,XML格式(不含路徑)

  2 SetEntityFile()

  SetEntityFile(string EntityFileName)—設定配置文件名

   EntityFileName=配置文件名,XML格式(不含路徑)

  3 GetSqlStruct()

  GetSqlStruct(stringSqlName)--取CSqlStruct對象,該對象的各屬性的值由配置文件EntityFileName中的<sqlname=”SqlName”>決定,即用配置文件EntityFileName中的SQL名稱(chēng)指定的值來(lái)生成SQL語(yǔ)句及參數。成功返回生成的CSqlStruct對象,失敗返回null.

   SqlName=要生成的SQL配置文件EntityFileName(XML格式)中的sql名稱(chēng)(<sql name=”SqlName”)。

  七 :asp.net通用數據庫訪(fǎng)問(wèn)層源碼之CEntityDAO類(lèi)

  CEntityDAO類(lèi)

  用于對數據庫操作。對于單表的新增、修改、刪除、查詢(xún)等操作,可以直接使用該類(lèi)別。該類(lèi)在WebFrame.DB名字空間里

  使用方法

  CEntityDAO dao=newCEntityDAO(m_EntityFile,m_ConnKey,m_LanguageName,m_UseClass);

  DataSet ds=dao.ExecuteDataset(sqlName);

  在A(yíng)SPX頁(yè)面中,如果要用form的組件值作為參數值(如<input type=”text”name=”UserName”>),該組件名(UserName)必須與參數名(即sal配置文件中的參數名,或id名,這里是UserName)相同,這時(shí),可用以下方法取得參數值:

  (1) DataSet paramDataset=new DataSet;

  paramDataset.ReadXml(Request.InputStream);

  (2) NameValueCollection paramValues=newNameValueCollection();

  paramValues.Add(Request.Form);

  paramValues.Add(Request.QueryString)

  屬性說(shuō)明

  1. LastMsg

  string, 最后的錯誤信息。當操作發(fā)生錯誤時(shí),該值包含錯誤原因,請將其顯示出來(lái)。

  2. ConnKey

  string, 指定數據庫連接字符串的key,該值在系統配置文件(WebFrame.config)中的

  <addkey=”DB.ConnString.zh-CHS”…/>中指定(不包含語(yǔ)言名稱(chēng).zh-CHS)。

  3. LanguageName

  string, 指定使用的語(yǔ)言名稱(chēng)。

  4. UseClass

  string, 指定調用該類(lèi)別的類(lèi)名或頁(yè)面名,一般在使用該類(lèi)別的函數用GetType().ToString()。

  5. EntityFileName

  string, 指定Sql配置文件名,不含路徑。

  函數說(shuō)明

  參數說(shuō)明

  以下函數的參數都是相同,其說(shuō)明如下:

   SqlName=要執行的SQL名稱(chēng)。配置文件(在Data目錄下的*.xml)中的<sqlnqme=”SqlName”>

  xmlVal=參數保存在XML格式的字符中,格式:<r><paramNamevalue='11'/>...</r>。當只有一個(gè)參數時(shí),xmlVal=參數值

  paramValue=NameValueCollection類(lèi)型,保存cmd的參數值。name=參數名(與cmd中的參數名相同),value=參數值。(對于SqlType=”Insert,Update”且replace=”1”時(shí),可用多個(gè)值來(lái)執行多個(gè)SQL,如果某個(gè)參數的值小于最大個(gè)數,就用最后一個(gè)值,其它情況只用第一個(gè)值執行一個(gè)SQL)

   oParamVal =object數組,保存參數值,與參數名的個(gè)數和順序相同(與cmd中的參數個(gè)數和順序相同)。

  dtVal=DataTable類(lèi)型,保存sql的參數值(一筆資料對應一個(gè)參數值)。DataTable列名必須與參數名(字段ID)相同。(對于SqlType=”Insert,Update”且replace=”1”時(shí),可用多個(gè)值來(lái)執行多個(gè)SQL,其它情況只用第一個(gè)值執行一個(gè)SQL)

  1. CEntityDAO()

  CEntityDAO的構造函數。

  (1)CEntityDAO()—必須用屬性來(lái)指定EntityFileName,如果不指定ConnKey、LanguageName、UseClass,則使用默認值。

  (2) CEntityDAO(stringentityFileName)—-指定sql配置文件名??捎脤傩灾付–onnKey、LanguageName、UseClass,如不指定則使用默認值。

  (3) CEntityDAO(string entityFileName,stringconnKey)—-指定sql配置文件及連接字符串的key,可用屬性指定LanguageName、UseClass,如不指定則使用默認值。

  (4) CEntityDAO(string entityFileName,string connKey,stringlanguageName)--指定sql配置文件、連接字符串的key、語(yǔ)言名稱(chēng),可用屬性指定UseClass,如不指定則使用默認值。

  (5) CEntityDAO(string entityFileName,string connKey,stringlanguageName,string useClass)--指定sql配置文件、連接字符串的key、語(yǔ)言名稱(chēng)、使用的類(lèi)別名。

   entityFileName=sql配置文件名,不含路徑,必須要指定。

  connKey=數據庫連接字符串的key值,預設使用DB.ConnString。在WebFrame.config中指定,不包含語(yǔ)言名稱(chēng),如:<addkey="DB.ConnString.zh-CHS" value="…">中的DB.ConnString

   languageName=使用的語(yǔ)言名稱(chēng),預設是zh-CHT。用.net格式,如zh-CHT 繁體版 ;zh-CHS 簡(jiǎn)體版;en 英文版

   useClass=使用訪(fǎng)類(lèi)別的類(lèi)名。在調用該類(lèi)的函數中用GetType().ToString().

  2. Insert()

  用SQL語(yǔ)句新增數據,成功返回最后新增的數據ID值,沒(méi)有新增返回0,錯誤返回-1。

  如果<sql name=’…’replace=’1’…>中的replace=”1”或”true”,則多個(gè)值來(lái)執行(拼成多個(gè)insert語(yǔ)句,用于同時(shí)新增字段少且數據少的數據)(如果某個(gè)值的個(gè)數小于最大個(gè)數,則用最后一個(gè)值),否則只用第一個(gè)值(用Command執行,用于新增字段多且數據多的數據)。成功返回第一個(gè)ID值(其它ID值可按第一個(gè)ID+1計算)。

  bAuto=指定是否要函數來(lái)計算主鍵的最大值。對于主鍵字段是數字(int),且不是自動(dòng)+1,該值應該為true。預設=true。

   bTrans=指定是否需要事務(wù),true:要事務(wù)。預設=false。

  3. Update()

  用SQL語(yǔ)句修改數據,成功返回修改的數據筆數,沒(méi)有修改返回0,錯誤返回-1

  (參數與Insert()類(lèi)似,請參考Insert()說(shuō)明)(預設SqlName=Update)。

  如果<sql name=’…’replace=’1’…>中的replace=”1”或”true”,則多個(gè)值來(lái)執行(拼成多個(gè)update語(yǔ)句,用于同時(shí)修改字段少且數據少的數據)(如果某個(gè)值的個(gè)數小于最大個(gè)數,則用最后一個(gè)值),否則只用第一個(gè)值(用Command執行,用于修改字段多且數據多的數據)。成功返回第一個(gè)ID值。

   bTrans=指定是否需要事務(wù),true:要事務(wù)。預設=false。

  4. ExecuteNonQuery()

  執行SQL語(yǔ)句,成功返回執行的數據筆(int),沒(méi)有結果返回0,錯誤返回-1。

  5. ExecuteScalar()

  執行SQL語(yǔ)句,成功第一行第一列的值(object),失敗返回null。

  6. ExecuteProcedure()

  執行存儲過(guò)程,返回存儲過(guò)程的返回值或輸出參數(NameValueCollection類(lèi)型,name=參數名,value=結果值),失敗返回null。

  7. ExecuteProcScalar()

  執行存儲過(guò)程,返回存儲過(guò)程的第一個(gè)返回值或輸出參數(object),失敗返回null。

  8. ExecuteDataset()

  查找指定條件的數據(SqlType='Text'),成功返回取得的資料(DataSet),失敗返回null

  9. ExecuteReader()

  查找指定條件的數據(SqlType='Text'),成功返回取得的資料(IDataReader),失敗返回null

   conn=CDBConn類(lèi)型,數據庫連接對象。先用CDBConn dbConn=CDBConn.Instance();dbConn.Open();打開(kāi)數據庫。

  10. SearchDataset()

  取指定條件的數據(SqlType=”Search”),可以只取指定頁(yè)的資料(配合存儲過(guò)程UPP_ExecuteForPage使用),成功返回取得的數據(DataSet),失敗返回null

  (1)CurrPage=int類(lèi)型,指定當前頁(yè)號,即取該頁(yè)的數據。當用UPP_ExecuteForPage來(lái)取數據時(shí),用CurrPage來(lái)指定取哪頁(yè)的數據,當CurrPage=0時(shí),取總資料筆數。當不使用UPP_ExecuteForPage時(shí),CurrPage的值無(wú)效(不用該參數)

  (2)PageSize=int類(lèi)型,指定每頁(yè)多少筆數據。當用UPP_ExecuteForPage來(lái)取數據時(shí),用PageSize來(lái)指定取每頁(yè)多少筆數據,當PageSize=0時(shí),取全部(不分頁(yè))。當不使用UPP_ExecuteForPage時(shí),PageSize的值無(wú)效(不用該參數)

  (3)RowCount=int類(lèi)型,本次查詢(xún)的總記錄數(先用ExecuteProcScalar()取總記錄數(CurrPage=0),然后傳給該參數),如果RowCount=-1則返回2個(gè)Tables(0:取得的資料集,1:資料總數(只有一個(gè)值))。當不使用UPP_ExecuteForPage時(shí),RowCount的值無(wú)效(不用該參數)。

  11. SearchReader()

  取指定條件的數據(SqlType=”Search”),可以只取指定頁(yè)的資料(配合存儲過(guò)程UPP_ExecuteForPage使用),成功返回取得的數據(IDataReader),失敗返回null

  (參數與ExecuteProcedure()類(lèi)似,請參考ExecuteProcedure()說(shuō)明。)

  (1) conn=CDBConn類(lèi)型,數據庫連接對象。先用CDBConn dbConn=CDBConn.Instance();dbConn.Open();打開(kāi)數據庫。

  九十: asp.net通用數據庫訪(fǎng)問(wèn)層源碼之CRightDAO類(lèi)

  CRightDAO類(lèi)

  數據庫操作基本類(lèi),在WebFrame.Base名字空間里,共有三個(gè):CBaseDAO、CSimpleDAO、CRightDAO。所有對數據庫的操作的業(yè)務(wù)邏輯層類(lèi)別都繼承該類(lèi)。CSimpleDAO包含由ASPX頁(yè)面傳來(lái)的context對象,用于判斷當前用戶(hù)的權限,而CBaseDAO則不包括context對象,要判斷權限,必須傳入用戶(hù)數據。一般情況下:

   不需判斷權限時(shí),繼承CBaseDAO

   只需簡(jiǎn)單權限時(shí),繼承CSimpleDAO,該類(lèi)繼承CBaseDAO。

   需要完全權限時(shí),繼承CRightDAO,該類(lèi)繼承CSimpleDAO。

  使用方法

  1.該類(lèi)在WebFrame.Base名字空間里,所以必須引入WebFrame.Base才能使用。在需要對數據庫操作的業(yè)務(wù)邏輯類(lèi)別中繼承。

  2.該類(lèi)預設用系統內定的數據庫(由配置文件(WebFrame.config)的key=”DB.ConnString”指定),如果要使用其它數據庫,則必須指定m_ConnKey的值(配置文件(WebFrame.config)的key=”DB.ConnString”等)。建議生成一個(gè)繼承該類(lèi)的新類(lèi)別,在構造函數中指定m_ConnKey值,在使用相同該數據庫時(shí),再繼承這個(gè)新類(lèi)別。

  3. 如果要判斷權限,則用myRight()取得權限值,然后進(jìn)行判斷,再執行存取數據函數。

  在A(yíng)SPX頁(yè)面中,如果要用form的組件的值作為參數值(如<input type=”text”name=”UserName”>),該組件名(UserName)必須與參數名(即sql配置文件中的參數名,或id名,這里是UserName)相同,這時(shí),可用以下方法取得參數值:

  (1) DataSet paramDataset=new DataSet;

  paramDataset.ReadXml(Request.InputStream);

  (2) NameValueCollection paramValues=newNameValueCollection();

  paramValues.Add(Request.Form);

  paramValues.Add(Request.QueryString)

  屬性說(shuō)明

  1. myUserId

  string, myUserId=m_UserId,使用者ID。

  2. myUserLevel

  string, myUserLevel=m_UserLevel, 使用者(登錄者)的用戶(hù)(職務(wù))級別。

  3. myParentId

  string, myParentId=m_ParentId,使用者所在群組的上級群組ID

  4. myGroupId

  string, myGroupId=m_GroupId,使用者據群組ID

  5. myRoleId

  string, myRoleId=m_RoleId使用者所擁有的角色ID,可有多個(gè)(用,分開(kāi))

  6. myRoleLevel

  string, myRoleLevel=m_RoleLevel,使用者最大角色級別。

  7. LastMsg

  string, LastMsg=最后信息。

  8. ConnKey

  string, 指定數據庫連接字符串的key,該值在系統配置文件(WebFrame.config)中的

  <addkey=”DB.ConnString.zh-CHS”…/>中指定(不包含語(yǔ)言名稱(chēng).zh-CHS)。

  9. UseClass

  string, 指定調用該類(lèi)別的類(lèi)名或頁(yè)面名,一般在使用該類(lèi)別的函數用GetType().ToString()。

  函數說(shuō)明

  1. CRightDAO ()

  構造函數,一般使用CRightDAO ()。

   UserId=string, 使用者ID,必須已經(jīng)解密(將Session(“UserId”)解密)。

   UserLevel= string,使用者(職務(wù))級別。

   GroupId= string, 群組ID,必須已經(jīng)解密(將Session(“GroupId”)解密)。

   ParentId= string,上級群組ID,必須已經(jīng)解密(將Session(“parentId”)解密)。

  2. SetEntityFile()

  SetEntityFile(string fileName,stringconnKey)--設置sql配置文件,該文件是XML格式,保存SQL語(yǔ)句。

   fileName= string,sql配置文件名(在Data目錄下的*.xml),不包括任何路徑,如my.xml

   connKey=string,指定數據庫連接字符串的key,該值在系統配置文件(WebFrame.config)中的

  <addkey=”DB.ConnString.zh-CHS”…/>中指定(不包含語(yǔ)言名稱(chēng).zh-CHS).

  3. SetLanguage()

  SetLanguage(string languageName ,stringuseClass)--設定使用的語(yǔ)言名稱(chēng)。

   languageName=使用的語(yǔ)言名稱(chēng)。

   useClass=調用該類(lèi)別的類(lèi)名或頁(yè)面名,一般在使用該類(lèi)別的函數用GetType().ToString()

  4. SetContext()

  SetContext()—設定頁(yè)面的Context值。

  5. SetUser()

  SetUser(string UserId,string UserLevel)--設置使用者ID,即將使用者ID解密。

  UserId=加密的使用者ID。預設=null,表示使用Session["UserId"],解密后保存在m_UserId中,當沒(méi)有UserId(UserId=null,0)時(shí),m_UserId=”-9”(可由屬性UserId取得m_UserId的值)

  UserLevel=解密后的用戶(hù)級別,如果是空,則解密登錄()的用戶(hù)級別(Session["UserLevel"])

  6. SetGroup()

  SetGroup(string GroupId,stringParentId)--設置使用者所在群組ID及上級群組ID,即將群組ID及上級群組ID解密。

  GroupId=加密的群組ID,預設=null,即使用Session["GroupId"],解密后保存在m_GroupId中,當沒(méi)有GroupId(GroupId=null,0)時(shí),m_GroupId=”-8”(可由屬性GroupId取得m_GroupId的值)

  ParentId=加密的上級群組Id,預設=null,即使用Session["ParentId"],解密后保存在m_ParentId中,當沒(méi)有ParentId(ParentId=null,0)時(shí),m_ParentId=”-7”(可由屬性ParentId取得m_ParentId的值)

  7. SetRole()

  SetRole(string RoleId,stringRoleLevel)--設置使用者所擁有的角色ID及角色級別,即將角色ID及角色級別解密。

  RoleId=加密的角色ID,預設=null,即使用Session[RoleId"],解密后保存在m_RoleId中,當沒(méi)有RoleId(RoleId=null,0)時(shí),m_RoleId=”-6”(可由屬性RoleId取得m_RoleId的值)

  RoleLevel=角色級別,預設=null,即使用Session["RoleLevel"],解密后保存在m_RoleLevel中,當沒(méi)有RoleLevel(RoleLevel=null,0)時(shí),m_RoleLevel=”-5”(可由屬性RoleLevel取得m_RoleLevel的值)。

  8. myRight()

  myRight(string UserId,stringSqlName)--取得使用者的操作權限。即判斷該用戶(hù)對該SqlName的操作權限,返回值:小于0:無(wú)權限,1-查找,2-新增,3-修改,4-刪除,9-全部。

  m_FullRight保存全部權限,格式:199111(6位),每個(gè)權限一位(0無(wú),1有),順序是(從左到右)1-允許,2-群組,3-角色級別,4-匯出,5-打印,6-遠程。(其中,2-群組的值又有1-僅自己,2-僅群組內,3-組內及下層組,4-同級組及其下層,5-指定組,9-全部,3-角色級別的值又有1-低級別,2-同級別,9-全部)

  m_right=m_FullRight中的一位,即保存m_FullRight中的一個(gè)權限。

   SqlName=SQ名稱(chēng),即配置文件中的 <sqlname=”SqlName”>,系統是用SQL名來(lái)判斷是否有執行該SQL的權限

   UserId=使用者ID,必須是已解密。即判斷該使用者是否有執行該SQL名的權限。

   type=取權限的類(lèi)別(完全權限用),0-全部,1-允許(1-查找,2-新增,3-修改,4-刪除,9-全部),2-群組(1-僅自己,2-僅群組內,3-組內及下層組,4-全部),3-級別(1-低級別,2-同級別,9-全部),4-匯出,5-打印,6-遠程。預設是0,即當用myRight()時(shí)則取全部權限。

  9. IsGroupRight()

  IsGroupRight(string SqlName,string GroupId_UserId,bool isUser)--判斷登錄用戶(hù)對SqlName操作的群組權限(登錄用戶(hù)群組與給定的群組的關(guān)系(同組、下層組,同組組)。有權限,返回>0:(1:僅自己,2:組內,3:組內及下層組,4:同級組及其下層組,9:全部),-10:未登錄,-9:無(wú)權限,0:有權限但不在組內

   SqlName=SQL名稱(chēng),即配置文件中的 <sqlname=”SqlName”>,系統是用SQL名來(lái)判斷是否有執行該SQL的權限。

   GroupId_UserId=要判斷的群組ID,或使用者ID(判斷該使用者所在的群組ID)。

   GroupId=要判斷的群組ID,使用者群組與該群組的關(guān)系(同組、下層組,同組組)

  isUser=指定GroupId_UserId的值,當isUser=true時(shí),GroupId_UserId=UserId(用該使用者ID來(lái)取得其群組ID),否則GroupId_UserId=GroupId。

  10. Insert()

  新增數據,成功返回新增的數據ID,沒(méi)有新增返回0,錯誤返回-1。

   SqlName=執行新增的SQL名稱(chēng),即配置文件中的 <sqlname=”SqlName”>,預設=Insert。

  paramValues=NameValueCollection類(lèi)型,保存新增的參數值,name=參數名(必須與SQL的參數名相同),value=參數值(可多個(gè)值,即允許新增多筆數據)

  dtVal=DataTable類(lèi)型,保存SQL的參數值(可多個(gè)值,一筆數據一個(gè)值,即允許新增多筆數據)。當沒(méi)有colHash時(shí),DataRow列名必須與參數名相同。

  bAuto=指定是否要函數來(lái)計算主鍵的最大值。對于主鍵字段是數字(int),且不是自動(dòng)+1,該值應該為true,否則為false。預設=true。

   bTrans=指定是否需要事務(wù),true:要事務(wù)。預設=false。

   right=指定是否要判斷權限,right=true是(預設),right=false不用判斷權限。

  11. Update()

  修改數據,成功返回修改數據筆數,沒(méi)有修改返回0,錯誤返回-1。

  (參數與Insert()類(lèi)似,請參考Insert()說(shuō)明)(SqlName預設=Update)

  12. Delete()

  刪除數據,成功返回刪除的數據筆數,沒(méi)有刪除返回0,錯誤返回-1。

   SqlName=執行刪除的SQL名稱(chēng),即配置文件中的 <sqlname=”SqlName”>,預設=Delete。

   Ids=要刪除的數據ID,多個(gè)用,分開(kāi)。

   bTrans=指定是否需要事務(wù),true:要事務(wù)。預設=false。

   right=指定是否要判斷權限,right=true是(預設),right=false不用判斷權限。

  13. IsExists()

  IsExists(string SqlName,string colValue,string msgID)--判斷數據是否存在(如賬號、Email等不能重復的字段),訊息在LastMsg中

   SqlName=要判斷的SQL名稱(chēng),即配置文件中的 <sqlname=”SqlName”>,該sql格式必須是:select id from tab wherecolName=colValue。

   colValue=要判斷的字段值。

   msgID=顯示訊的ID(空:不顯示訊息)

  14. GetJSValues()

  GetJSValues(string jsParamName,string SqlName,object[]paramVal)--取得指定sqlname的JS變量值,用于聯(lián)動(dòng)select。執行SqlName的返回字段是:上級ID,本級ID,名稱(chēng)

  返回JS字符串,格式:

  var jsParamName=new Array();jsParamName[0]=newArray("0","1","名稱(chēng)1");.....

   jsParamName= JS變量名,該變量在JS函數中調用。

   SqlName=要判斷的SQL名稱(chēng),即配置文件中的 <sqlname=”SqlName”>,該sql格式必須是:select id from tab wherecolName=colValue。

   paramVal= sql的參數值,個(gè)數和順序必須與參數名相同。

  15. isLogin()

  判斷是否已經(jīng)登錄系統,是返回true,否返回false

  16. IsEdit()

  IsEdit(string SqlName,SByte type)—判斷是否有編輯權限,是返回true。

   SqlName=SQL名稱(chēng),即配置文件中的 <sqlname=”SqlName”>,系統是用SQL名來(lái)判斷是否有執行該SQL的權限。

   Type=要判斷哪個(gè)權限:1-查找,2-新增,3-修改,4-刪除,9-全部

  17. AddMsg()

  AddMsg(string msgID,bool isClear)-- 將指定訊息ID的內容加入到LastMsg中

   msgID =要加入的訊息ID,在訊息文件中

   isClear= true(預設):清除LastMsg的所有訊息

  18. DispMsg()

  DispMsg(string msg,string url,bool IsBack)—用JS顯示訊息,并返回指定頁(yè)面。

   msg =要顯示的信息,如果是null或空,則顯示LastMsg

   url= IsBack=false時(shí)不用。IsBack=true時(shí),返回的頁(yè)面地址,,或要執行的JS函數(以")"結束)。url=null或'':返回上一頁(yè)面history.go(-1),_只有2個(gè)數字以?xún)?返回history.go(-url),以');'或')'結束則url=JS函數。

   IsBack=true:返回,false:不返回(留在當前頁(yè))

  CSecurity類(lèi)

  判斷使用者的操作權限類(lèi)別,在WebFrame.Base名字空間里。是靜態(tài)類(lèi),可以直接使用。

  使用方法

  該類(lèi)在WebFrame.Base名字空間里,所以必須引入WebFrame.Base才能使用??梢灾苯邮褂?,如CSecurity.GetRight();

  屬性說(shuō)明

  無(wú)

  函數說(shuō)明

  1. GetSimpleRight()

  GetSimpleRight(string UserId,string EntityFile,stringSqlName,string ConnKey,stringLanguageName)--取簡(jiǎn)單操作權限,即只取是否允許的權限,返回取得的權限(1有,0無(wú))。該函數執行UP_TB_RoleRight_GetUserRight存儲過(guò)程。返回:0-無(wú)權限,1-查找,2-新增,3-修改,4-刪除,9-全部

   UserId=使用者ID(必須已解密),取該使用者ID的權限。

   EntityFile=sql配置文件名,不含路徑

   SqlName=配置文件中的SQL名稱(chēng)(<sqlname=”SqlName”>),即取UserId是否有對SqlName操作的權限。

   ConnKey=指定數據庫連接字符串的key,該值在系統配置文件(WebFrame.config)中的

  <addkey=”DB.ConnString.zh-CHS”…/>中指定(不包含語(yǔ)言名稱(chēng).zh-CHS)。

   LanguageName=指定使用的語(yǔ)言名稱(chēng)。

  2. GetRight()

  取全部權限,返回取到的權限(無(wú)權限返回0),格式:199111(6位),每個(gè)權限一位(0無(wú),1有),順序是(從左到右)1-允許,2-群組,3-角色級別,4-匯出,5-打印,6-遠程。(其中,2-群組的值又有1-僅自己,2-僅群組內,3-組內及下層組,4-同級組及其下層,5-指定組,9-全部,3-角色級別的值又有1-低級別,2-同級別,9-全部)。該函數執行UP_TB_RoleRight_GetUserRight存儲過(guò)程。

  GetRight(string RoleIds,string EntityFile,string SqlName,stringConnKey,string LanguageName)=取指定RoleIds的SqlName的全部權限

  GetRight(int right,int type) =由全部權限值取中期一個(gè)權限的值,即分解全部權限的值。

  (參數與GetSimpleRight()類(lèi)似,請參考GetSimpleRight()說(shuō)明)

   RoleIds=角色ID,多個(gè)用,分開(kāi)

   right=權限值,由GetRight(UserId,SqlName)取得的權限值。

   type=要取的權限類(lèi)別,1-允許,2-群組,3-角色級別,4-匯出,5-打印,6-遠程。

  3. IsInGroup()

  IsInGroup(string ParentId,string User_GroupId,bool bUserId,stringConnKey,stringLanguageName)--判斷用戶(hù)ID或群組ID是否是另一個(gè)群組內及下層組,返回值:1=User_GroupId與ParentId同組,2=User_GroupId是ParentId的直接下層,3=User_GroupId是ParentId的下層之下層,0-User_GroupId與ParentId無(wú)關(guān)系。該函數使用UP_TB_Users_IsInGroup存儲過(guò)程。

   ParentId=上級群組ID,或群組ID。判斷使用者的群組與ParentId的關(guān)系。

   User_GroupId=要判斷的用戶(hù)ID或群組ID,與ParentId中的關(guān)系。

  bUserId=指定User_GroupId的值,當bUserId=true時(shí),User_GroupId=UserId(用該使用者ID來(lái)取得其群組ID),否則User_GroupId=GroupId

   ConnKey=指定數據庫連接字符串的key,該值在系統配置文件(WebFrame.config)中的

  <addkey=”DB.ConnString.zh-CHS”…/>中指定(不包含語(yǔ)言名稱(chēng).zh-CHS)

   LanguageName=指定使用的語(yǔ)言名稱(chēng)

  4. IsRoleLevel()

  IsUserLevel(string UserId1,string UserId2,string ConnKey,stringLanguageName)--比較操作者的級別與指定用戶(hù)角色級別,返回值:-1:RoleLevel低于指定用戶(hù)級別,0:相同,1:RoleLevel高于指定用戶(hù)級別。該函數使用UP_TB_Role_IsRoleLevel存儲過(guò)程。

   RoleLevel=角色級別,判斷用戶(hù)的角色級別與RoleLevel的比較。

  Role_User_GroupId=使用者的角色ID、或用戶(hù)ID、或群組ID,用這些ID來(lái)取角色級別,然后與RoleLevel比較。

  nRoleId=指定Role_User_GroupId的類(lèi)別,nRoleId=0時(shí):Role_User_GroupId=RoleLevel角色級別,nRoleId=1時(shí):Role_User_GroupId=RoleId角色ID,nRoleId=2時(shí):Role_User_GroupId=UserId用戶(hù)ID,nRoleId=3時(shí):Role_User_GroupId=GroupId群組ID

   ConnKey=指定數據庫連接字符串的key,該值在系統配置文件(WebFrame.config)中的

  <addkey=”DB.ConnString.zh-CHS”…/>中指定(不包含語(yǔ)言名稱(chēng).zh-CHS)

   LanguageName=指定使用的語(yǔ)言名稱(chēng)
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
【轉】關(guān)于使用GUID和Identity做主鍵的一些思考
c# mysql數據庫連接(我碰到的問(wèn)題)
ASP.NET中備份SQL Server數據庫的方法
ADO.NET入門(mén)教程(三) 連接字符串,你小覷了嗎?
.NET開(kāi)源項目介紹及資源推薦:IOC容器篇
淺談Oracle數據庫的網(wǎng)絡(luò )應用-入門(mén)基礎
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久