通用权限管理系统组件 (GPM - General Permissions Manager) 给信息管理系统加一个初始化的功能,调用存储过程...
生活随笔
收集整理的這篇文章主要介紹了
通用权限管理系统组件 (GPM - General Permissions Manager) 给信息管理系统加一个初始化的功能,调用存储过程...
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
?? 系統初始化的運行效果如下:
??
??? 參數表是為了防止反復被初始化的,防止關鍵數據丟失。
??
??
?
?? 其實很多人都提過希望有系統初始化的功能,最近稍微空一些,就給系統增加了一個初始化的功能,給大家參考一下。
首先寫了一個存儲過程如下,把系統中的表都清理干凈,存儲過程的名字叫“SystemInitialize”
View Code --?=============================================--?Author:????????<吉日嘎拉>
--?Create?date:?<2012.01.18>
--?Description:????<初始化系統>
--?=============================================
ALTER?PROCEDURE?[dbo].[SystemInitialize]?
AS
BEGIN
????SET?NOCOUNT?ON;
????
????--?檢查是否已經初始化過系統?只允許初始化一次
????DECLARE?@Worked?int;
????SELECT?@Worked?=?Worked?FROM?Base_Parameter?WHERE?ID?=?10000000?AND?ParameterContent?=?'None';
????
????IF?@Worked?>?0
????BEGIN
??????RETURN;
????END
????--?名片管理
????TRUNCATE?TABLE?Base_Businesscard;
????--?評論表
????TRUNCATE?TABLE?Base_Comment;
????--?聯絡單明細表
????TRUNCATE?TABLE?Base_ContactDetails;
????--?聯絡單主表
????TRUNCATE?TABLE?Base_Contact;
????--?系統異常表
????TRUNCATE?TABLE?Base_Exception;
????--?文件表
????TRUNCATE?TABLE?Base_File;
????--?文件夾表
????TRUNCATE?TABLE?Base_Folder;
????--?數據字典主表(資源)
????--?Base_Items
????--?工作流示例—請假單表
????TRUNCATE?TABLE?Base_Leave;
????--?系統日志表
????TRUNCATE?TABLE?Base_Log;
????--?消息表
????TRUNCATE?TABLE?Base_Message;
????--?模塊(菜單)表?通用權限以外的全刪除
????DELETE?FROM?Base_Module?WHERE?AllowDelete?=?1;
????--?組織機構、部門表?刪除的測試數據
????DELETE?FROM?Base_Organize?WHERE?IsInnerOrganize?=?1;
????--?新聞表
????TRUNCATE?TABLE?Base_News;
????--?系統參數配置表
????DELETE?FROM?Base_Parameter?WHERE?(ID?<>?10000000);
????--?操作權限存儲表
????TRUNCATE?TABLE?Base_Permission;
????--?數據集權限存儲表
????TRUNCATE?TABLE?Base_PermissionScope;
????--?操作權限項定義?刪除通用權限意外的全部權限定義
????DELETE?FROM?Base_PermissionItem?WHERE?AllowDelete?=?1;
????--?項目表
????TRUNCATE?TABLE?Base_Project;
????--?員工(職員)表組織關系表
????TRUNCATE?TABLE?Base_StaffOrganize;
????--?員工(職員)表
????TRUNCATE?TABLE?Base_Staff;
????--?序列產生器表
????TRUNCATE?TABLE?Base_Sequence;
????--?表字段結構定義說明
????TRUNCATE?TABLE?Base_TableColumns;
????--?用戶送貨地址表
????TRUNCATE?TABLE?Base_UserAddress;
????--?用戶帳戶組織關系表
????TRUNCATE?TABLE?Base_UserOrganize;
????--?用戶帳戶角色關系表
????TRUNCATE?TABLE?Base_UserRole;
????--?用戶帳戶表
????DELETE?FROM?Base_User?WHERE?UserName?!=?'Administrator';
????--?系統角色表
????DELETE?FROM?Base_Role?WHERE?Code?!=?'Administrators';
????--?工作日志表
????TRUNCATE?TABLE?Base_WorkReport;
????
????--?設置已初始化標志,防止反復初始化系統
????UPDATE?Base_Parameter?SET?Worked?=?1,?ParameterContent?=?'Processed'?WHERE?ID?=?10000000;
END
???在通用權限管理系統組件中調用存儲過程的方法如下
View Code private?void?btnInitialize_Click(object?sender,?EventArgs?e)????????{
????????????//?默認按鈕放在第2個按鈕上,盡量防止誤操作。
????????????if?(MessageBox.Show(AppMessage.MSG3000,?AppMessage.MSG0000,?MessageBoxButtons.OKCancel,?MessageBoxIcon.Question,?MessageBoxDefaultButton.Button2)?==?DialogResult.OK)
????????????{
????????????????//?按系統的配置信息動態獲取數據庫連接
????????????????using?(IDbHelper?dbHelper?=?DbHelperFactory.GetHelper(BaseSystemInfo.UserCenterDbType))
????????????????{
????????????????????try
????????????????????{
????????????????????????//?打開數據庫連接
????????????????????????dbHelper.Open(BaseSystemInfo.UserCenterDbConnection);
????????????????????????//?執行存儲過程
????????????????????????int?returnValue?=?dbHelper.ExecuteNonQuery(CommandType.StoredProcedure,?"SystemInitialize");
????????????????????????//?成功的提示信息
????????????????????????MessageBox.Show(AppMessage.MSG3010,?AppMessage.MSG0000,?MessageBoxButtons.OK,?MessageBoxIcon.Information);
????????????????????????this.btnInitialize.Enabled?=?false;
????????????????????}
????????????????????catch?(Exception?ex)
????????????????????{
????????????????????????//?在本地文件中記錄系統異常信息
????????????????????????this.WriteException(ex);
????????????????????????throw?ex;
????????????????????}
????????????????????finally
????????????????????{
????????????????????????//?關閉數據庫庫連接
????????????????????????dbHelper.Close();
????????????????????}
????????????????}
????????????}
????????}
??? 判斷當前用戶是否已經登錄,當前用戶是否超級管理員,當前連接的數據庫類型等的參考代碼如下
View Code public?override?void?SetControlState()????????{
????????????//?已經登錄了系統,并且是系統管理員才可以做這個服務器端的配置,第一次用時無法配置系統了
????????????/*
????????????if?(!BaseSystemInfo.LogOned?||?!this.UserInfo.IsAdministrator)
????????????{
????????????????this.tcConfirm.TabPages.Remove(tpServer);
????????????}
????????????*/
????????????//?有并發數設置時,不允許重復登錄。
????????????if?(this.nupOnLineLimit.Value?>?0)
????????????{
????????????????this.chkCheckOnLine.Checked?=?false;
????????????????this.chkCheckOnLine.Enabled?=?false;
????????????}
????????????else
????????????{
????????????????this.chkCheckOnLine.Enabled?=?true;
????????????}
????????????//?只有系統管理員才可以初始化系統,并卻是sqlserver數據庫下才運行
????????????this.btnInitialize.Visible?=?BaseSystemInfo.LogOned?&&?BaseSystemInfo.UserInfo.IsAdministrator;
????????????if?(this.btnInitialize.Visible)
????????????{
????????????????if?(BaseSystemInfo.UserCenterDbType?==?DataBaseType.SqlServer)
????????????????{
????????????????????string?parameter?=?DotNetService.Instance.ParameterService.GetParameter(UserInfo,?"System",?"System",?"Initialize");
????????????????????if?(!string.IsNullOrEmpty(parameter)?&&?parameter.Equals("None"))
????????????????????{
????????????????????????this.btnInitialize.Enabled?=?true;
????????????????????}
????????????????}
????????????}
????????}
? ? 給大家分享一下比較強大的完整的數據庫訪問組件,經過了7-8年的考研,運行穩定,編碼風格良好,完整源碼下載地址如下:
??? /Files/jirigala/DotNet.Utilities.rar?
??源碼效果圖如下:
???
轉載于:https://www.cnblogs.com/jirigala/archive/2012/01/18/2325578.html
總結
以上是生活随笔為你收集整理的通用权限管理系统组件 (GPM - General Permissions Manager) 给信息管理系统加一个初始化的功能,调用存储过程...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 题目:大地的秘密
- 下一篇: Windows 7可以体验IE10了