日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

c# mysql 管理员权限_C# winform 权限管理系统完整源码下载(含数据库)

發(fā)布時間:2025/3/20 数据库 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c# mysql 管理员权限_C# winform 权限管理系统完整源码下载(含数据库) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

【實例簡介】

【實例截圖】

【核心代碼】

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Text;

using System.Windows.Forms;

using IBLL = CodingMouse.CMCSharpSDK.IBLL;

using BLLFactory = CodingMouse.CMCSharpSDK.BLLFactory;

using Model = CodingMouse.CMCSharpSDK.Model;

using Common = CodingMouse.CMCSharpSDK.UI.Common;

namespace CodingMouse.CMCSharpSDK.UI.Forms

{

///

/// 權(quán)限管理界面

///

public partial class frmRightsManager : Form

{

#region Private Members

MenuStrip _msMain = null;

///

/// 主界面被管理的菜單對象

///

internal MenuStrip MsMain

{

get { return _msMain; }

set { _msMain = value; }

}

frmMain _frmMain = null;

///

/// 主界面對象

///

public frmMain FrmMain

{

get { return _frmMain; }

set { _frmMain = value; }

}

///

/// 權(quán)限菜單界面管理類對象

///

Common.RightsMenuUIManager _rmuManager = null;

///

/// 權(quán)限菜單數(shù)據(jù)管理類對象

///

Common.RightsMenuDataManager _rmdManager = null;

Model.Operator _currentOperator = null;

///

/// 保存當前登錄的操作員對象

///

internal Model.Operator CurrentOperator

{

get { return _currentOperator; }

set { _currentOperator = value; }

}

Dictionary _operatorCollection = null;

///

/// 當前加載的所有操作員實體集合

///

internal Dictionary OperatorCollection

{

get { return _operatorCollection; }

set { _operatorCollection = value; }

}

bool _isRelatingChooseCells = true;

///

/// 是否啟用數(shù)據(jù)視圖關(guān)聯(lián)選擇

///

internal bool IsRelatingChooseCells

{

get { return _isRelatingChooseCells; }

set { _isRelatingChooseCells = value; }

}

///

/// 是否啟用樹視圖子節(jié)點關(guān)聯(lián)選擇

///

bool _isCheckedChildTreeNode = true;

///

/// 保存上一次被選中的操作員列表行

///

DataGridViewRow _dgvOldSelectedRow = null;

///

/// 權(quán)限視圖可勾選狀態(tài)

///

bool _rightsViewIsChecked = false;

#endregion

#region Public Methods

///

/// 帶參構(gòu)造

///

/// 主界面待管理的菜單對象

/// 主界面對象

/// 當前登錄操作員對象

public frmRightsManager(MenuStrip msMain, frmMain frmMain, Model.Operator currentOperator)

{

// 構(gòu)建設(shè)計器控件

InitializeComponent();

// 保存菜單對象

MsMain = msMain;

// 保存主界面對象

FrmMain = frmMain;

// 保存當前登錄操作員對象

CurrentOperator = currentOperator;

// 創(chuàng)建權(quán)限菜單界面管理類實例

_rmuManager = new Common.RightsMenuUIManager();

// 賦予要操作的對象

_rmuManager.DgvOperatorList = this.dgvOperatorList;

_rmuManager.DgvRightsList = this.dgvRightsList;

_rmuManager.TvRightsView = this.tvRightsView;

_rmuManager.MsMain = _msMain;

_rmuManager.RightsManagerUI = this;

// 創(chuàng)建權(quán)限菜單數(shù)據(jù)管理類實例

_rmdManager = new Common.RightsMenuDataManager();

}

#endregion

#region Event Handlers

///

/// 窗體初始化事件

///

///

///

private void frmRightsManager_Load(object sender, EventArgs e)

{

// 加載操作員列表

_rmuManager.LoadOperatorList();

// 默認為分組模式

tsbtnRightsMode.Text = tsmiGroupMode.Text;

}

///

/// 樹形視圖右鍵菜單公共點擊事件

///

///

///

private void tsmiTreeViewContentMenuItem_Click(object sender, EventArgs e)

{

// 保存當前菜單項激發(fā)者

ToolStripMenuItem menuItem = sender as ToolStripMenuItem;

// 勾選所有結(jié)點上的復選框

if (menuItem == tsmiSelectAll)

{

foreach (TreeNode treeNode in this.tvRightsView.Nodes)

{

treeNode.Checked = true;

// 禁用樹視圖重繪

tvRightsView.BeginUpdate();

// 選中/取消樹節(jié)點及其子節(jié)點勾選狀態(tài)

_rmuManager.CheckOrUnCheckTreeNode(treeNode);

// 啟用樹視圖重繪

tvRightsView.EndUpdate();

}

}

// 取消所有結(jié)點上的復選

if (menuItem == tsmiCancelAll)

{

foreach (TreeNode treeNode in this.tvRightsView.Nodes)

{

treeNode.Checked = false;

// 禁用樹視圖重繪

tvRightsView.BeginUpdate();

// 選中/取消樹節(jié)點及其子節(jié)點勾選狀態(tài)

_rmuManager.CheckOrUnCheckTreeNode(treeNode);

// 啟用樹視圖重繪

tvRightsView.EndUpdate();

}

}

// 重新加載賬戶權(quán)限結(jié)構(gòu)樹

if (menuItem == tsmiReload)

{

// 如果有選中行

if (dgvOperatorList.SelectedCells.Count > 0)

{

// 保存當前選中行的操作員名稱

string operatorName = _dgvOldSelectedRow.Cells["ModelName"].Value.ToString().Trim();

// 指定當前編輯的操作員對象

Model.Operator editOperator = _operatorCollection[operatorName];

// 將數(shù)據(jù)綁定加載到樹形視圖

_rmuManager.BindDataToTreeView(editOperator.RightsCollection);

}

}

// 將 TreeView 樹結(jié)點全部展開

if (menuItem == tsmiExpandAll)

{

this.tvRightsView.ExpandAll();

}

// 將 TreeView 樹結(jié)點全部折疊

if (menuItem == tsmiCollapseAll)

{

this.tvRightsView.CollapseAll();

}

}

///

/// [保存更改]工具欄按鈕點擊事件

///

///

///

private void tsbtnSaveAllChanged_Click(object sender, EventArgs e)

{

// 提交并結(jié)束數(shù)據(jù)視圖的單元格編輯

dgvRightsList.EndEdit();

dgvOperatorList.EndEdit();

// 如果有選中單元格

if (dgvOperatorList.SelectedCells.Count > 0)

{

try

{

// 創(chuàng)建業(yè)務(wù)邏輯層工廠類實例

BLLFactory.BLLFactory bllFactory = new BLLFactory.BLLFactory();

// 調(diào)用工廠類實例方法創(chuàng)建操作員管理類實例

IBLL.IOperatorManager operatorManager = bllFactory.BuildOperatorManager();

// 保存所有操作員權(quán)限信息

foreach (Model.Operator tmpOperator in _operatorCollection.Values)

{

// 保存當前操作員所做的修改

operatorManager.ModifyOperator(tmpOperator);

}

// 給出用戶操作提示

MessageBox.Show(

"權(quán)限設(shè)置保存成功!",

"保存提示",

MessageBoxButtons.OK,

MessageBoxIcon.Information);

}

catch (Exception ex)

{

MessageBox.Show(

ex.Message,

"保存失敗",

MessageBoxButtons.OK,

MessageBoxIcon.Error);

}

}

}

///

/// [刷新權(quán)限]工具欄按鈕點擊事件

///

///

///

private void tsbtnRefreshRightsList_Click(object sender, EventArgs e)

{

// 如果是非超級管理員

if (_currentOperator.Id != 0)

{

// 將數(shù)據(jù)綁定顯示到數(shù)據(jù)視圖

_rmuManager.BindDataToDataGridView(_currentOperator.RightsCollection);

// 將數(shù)據(jù)綁定加載到樹形視圖

_rmuManager.BindDataToTreeView(_currentOperator.RightsCollection);

}

}

///

/// [刷新用戶]工具欄按鈕點擊事件

///

///

///

private void tsbtnRefreshOperator_Click(object sender, EventArgs e)

{

// 將數(shù)據(jù)綁定顯示到數(shù)據(jù)視圖

_rmuManager.BindOperatorInfoToDataGridView(_operatorCollection);

}

///

/// [關(guān)閉窗口]工具欄按鈕點擊事件

///

///

///

private void tsbtnCloseWindow_Click(object sender, EventArgs e)

{

this.Close();

}

///

/// 權(quán)限列表數(shù)據(jù)視圖單元格啟動編輯模式事件

///

///

///

private void dgvRightsList_CellBeginEdit(object sender, DataGridViewCellCancelEventArgs e)

{

// 如果是權(quán)限狀態(tài)列且節(jié)點不可選則取消勾選事件

if (dgvRightsList.Columns[e.ColumnIndex].Name == "RightsState" && !_rightsViewIsChecked)

e.Cancel = true;

}

///

/// 權(quán)限列表數(shù)據(jù)視圖單元格停止編輯模式事件

///

///

///

private void dgvRightsList_CellEndEdit(object sender, DataGridViewCellEventArgs e)

{

// 如果包含操作員信息

if (dgvOperatorList.SelectedCells.Count > 0)

{

// 保存當前選中行的操作員名稱

string operatorName = dgvOperatorList.Rows[dgvOperatorList.SelectedCells[0].RowIndex].Cells["ModelName"].Value.ToString().Trim();

// 指定當前編輯的操作員對象

Model.Operator editOperator = _operatorCollection[operatorName];

// 找到當前編輯的權(quán)限項

Model.Rights currentEditRights = editOperator.RightsCollection[dgvRightsList.Rows[e.RowIndex].Cells["ModelName"].Value.ToString().Trim()];

// 保存當前修改的權(quán)限標題和權(quán)限狀態(tài)到權(quán)限集合

currentEditRights.RightsCaption = Convert.ToString(dgvRightsList.Rows[e.RowIndex].Cells["RightsCaption"].Value);

currentEditRights.RightsState = Convert.ToBoolean(dgvRightsList.Rows[e.RowIndex].Cells["RightsState"].Value);

// 將數(shù)據(jù)綁定加載到樹形視圖

_rmuManager.BindDataToTreeView(editOperator.RightsCollection);

}

}

///

/// 操作員列表數(shù)據(jù)視圖單元格停止編輯模式事件

///

///

///

private void dgvOperatorList_CellEndEdit(object sender, DataGridViewCellEventArgs e)

{

// 如果包含操作員信息

if (dgvOperatorList.SelectedCells.Count > 0)

{

// 找到當前編輯的操作員項

Model.Operator currentEidtOperator = _operatorCollection[dgvOperatorList.Rows[e.RowIndex].Cells["ModelName"].Value.ToString().Trim()];

// 保存當前修改的操作員密碼和狀態(tài)到操作員集合

currentEidtOperator.Password = Convert.ToString(dgvOperatorList.Rows[e.RowIndex].Cells["Password"].Value);

currentEidtOperator.State = Convert.ToBoolean(dgvOperatorList.Rows[e.RowIndex].Cells["State"].Value);

}

}

///

/// 權(quán)限列表數(shù)據(jù)視圖所選內(nèi)容更改事件

///

///

///

private void dgvRightsList_SelectionChanged(object sender, EventArgs e)

{

// 僅在有選中單元格且啟用關(guān)聯(lián)選擇時才執(zhí)行操作

if (dgvRightsList.SelectedCells.Count > 0 && IsRelatingChooseCells)

{

// 遍歷所有選中單元格選中所有同級權(quán)限項及父項

for (int i = 0; i < dgvRightsList.SelectedCells.Count; i )

{

// 且僅在選中[內(nèi)部名稱]和[父級權(quán)限]單元格時才執(zhí)行操作

if (dgvRightsList.SelectedCells[i].OwningColumn.Name == "ModelName"

|| dgvRightsList.SelectedCells[i].OwningColumn.Name == "ParentLevelRightsName")

{

// 同時選中與選中單元格內(nèi)容相同的所有[內(nèi)部名稱]和[父級權(quán)限]單元格

foreach (DataGridViewRow dgvRow in this.dgvRightsList.Rows)

{

if (dgvRow.Cells["ModelName"].Value == dgvRightsList.SelectedCells[i].Value)

dgvRow.Cells["ModelName"].Selected = true;

else if (dgvRow.Cells["ParentLevelRightsName"].Value == dgvRightsList.SelectedCells[i].Value)

dgvRow.Cells["ParentLevelRightsName"].Selected = true;

}

}

}

}

}

///

/// 操作員列表數(shù)據(jù)視圖所選內(nèi)容更改事件

///

///

///

private void dgvOperatorList_SelectionChanged(object sender, EventArgs e)

{

if (dgvOperatorList.SelectedCells.Count > 0

&& dgvOperatorList.Rows[dgvOperatorList.SelectedCells[0].RowIndex] != _dgvOldSelectedRow)

{

// 保存當前選中的行

_dgvOldSelectedRow = dgvOperatorList.Rows[dgvOperatorList.SelectedCells[0].RowIndex];

// 保存當前選中行的操作員名稱

string operatorName = _dgvOldSelectedRow.Cells["ModelName"].Value.ToString().Trim();

// 指定當前編輯的操作員對象

Model.Operator editOperator = _operatorCollection[operatorName];

// 將數(shù)據(jù)綁定顯示到數(shù)據(jù)視圖

_rmuManager.BindDataToDataGridView(editOperator.RightsCollection);

// 將數(shù)據(jù)綁定加載到樹形視圖

_rmuManager.BindDataToTreeView(editOperator.RightsCollection);

}

}

///

/// [權(quán)限視圖]節(jié)點復選前事件

///

///

///

private void tvRightsView_BeforeCheck(object sender, TreeViewCancelEventArgs e)

{

// 如果節(jié)點不可選則取消勾選事件

if (!_rightsViewIsChecked)

e.Cancel = true;

}

///

/// 權(quán)限樹形視圖復選框狀態(tài)更改事件

///

///

///

private void tvRightsView_AfterCheck(object sender, TreeViewEventArgs e)

{

// 如果已經(jīng)啟用子節(jié)點關(guān)聯(lián)選擇

if (_isCheckedChildTreeNode)

{

// 禁用樹視圖重繪

tvRightsView.BeginUpdate();

// 禁用子節(jié)點關(guān)聯(lián)選擇

_isCheckedChildTreeNode = false;

// 選中/取消樹節(jié)點及其子節(jié)點勾選狀態(tài)

_rmuManager.CheckOrUnCheckTreeNode(e.Node);

// 啟用子節(jié)點關(guān)聯(lián)選擇

_isCheckedChildTreeNode = true;

// 啟用樹視圖重繪

tvRightsView.EndUpdate();

if (dgvOperatorList.SelectedCells.Count > 0)

{

// 保存當前選中行的操作員名稱

string operatorName = dgvOperatorList.Rows[dgvOperatorList.SelectedCells[0].RowIndex].Cells["ModelName"].Value.ToString().Trim();

// 將數(shù)據(jù)綁定顯示到數(shù)據(jù)視圖

_rmuManager.BindDataToDataGridView(_operatorCollection[operatorName].RightsCollection);

}

}

}

///

/// 權(quán)限樹形視圖選定內(nèi)容更改事件

///

///

///

private void tvRightsView_AfterSelect(object sender, TreeViewEventArgs e)

{

// 禁用關(guān)聯(lián)選擇

_isRelatingChooseCells = false;

// 清除所有單元格選擇

dgvRightsList.ClearSelection();

// 啟用關(guān)聯(lián)選擇

_isRelatingChooseCells = true;

// 同步數(shù)據(jù)視圖對應(yīng)項選擇

foreach (DataGridViewRow dgvRow in this.dgvRightsList.Rows)

{

if (dgvRow.Cells["ModelName"].Value.ToString().Trim() == e.Node.Tag.ToString().Trim())

dgvRow.Cells["ModelName"].Selected = true;

}

}

///

/// 用戶編輯權(quán)限樹形視圖節(jié)點文本后事件

///

///

///

private void tvRightsView_AfterLabelEdit(object sender, NodeLabelEditEventArgs e)

{

// 保存當前選中行的操作員名稱

string operatorName = dgvOperatorList.Rows[dgvOperatorList.SelectedCells[0].RowIndex].Cells["ModelName"].Value.ToString().Trim();

// 同步修改權(quán)限集合

_operatorCollection[operatorName].RightsCollection[e.Node.Tag.ToString()].RightsCaption = e.Label;

// 將數(shù)據(jù)綁定顯示到數(shù)據(jù)視圖

_rmuManager.BindDataToDataGridView(_operatorCollection[operatorName].RightsCollection);

}

///

/// 窗體指定關(guān)閉原因后且已關(guān)閉事件

///

///

///

private void frmRightsManager_FormClosed(object sender, FormClosedEventArgs e)

{

// 重新加載權(quán)限菜單

_rmdManager.LoadMenuRightsItem(_msMain, _currentOperator.RightsCollection);

}

///

/// [添加用戶]工具欄按鈕點擊事件

///

///

///

private void tsbtnAddOperator_Click(object sender, EventArgs e)

{

frmOperatorManager frmAddOperator = new frmOperatorManager(_currentOperator, _msMain, false);

frmAddOperator.ShowInTaskbar = false;

frmAddOperator.ShowDialog();

// 重新加載操作員列表

_rmuManager.LoadOperatorList();

// 選中最末項并使其滾動保持可見

if (dgvOperatorList.Rows.Count > 0)

{

dgvOperatorList.Rows[dgvOperatorList.Rows.Count - 1].Selected = true;

dgvOperatorList.FirstDisplayedScrollingRowIndex = dgvOperatorList.Rows.Count - 1;

}

}

///

/// [刪除用戶]工具欄按鈕點擊事件

///

///

///

private void tsbtnDeleteOperator_Click(object sender, EventArgs e)

{

// 如果有選中單元格

if (dgvOperatorList.SelectedCells.Count > 0)

{

try

{

// 獲取當前要刪除的操作員 ID

int operatorId = Convert.ToInt32(dgvOperatorList.SelectedCells[0].OwningRow.Cells["Id"].Value);

// 獲取當前要刪除的操作員名稱

string operatorName = Convert.ToString(dgvOperatorList.SelectedCells[0].OwningRow.Cells["ModelName"].Value);

DialogResult result;

result = MessageBox.Show(

string.Format("確實要刪除操作員 [{0}] 的所有(包括權(quán)限關(guān)系)信息嗎?", operatorName),

"刪除提示",

MessageBoxButtons.OKCancel,

MessageBoxIcon.Question,

MessageBoxDefaultButton.Button2);

if (result == DialogResult.Cancel)

return;

// 創(chuàng)建工廠類

BLLFactory.BLLFactory bllFactory = new BLLFactory.BLLFactory();

// 刪除權(quán)限關(guān)系信息

IBLL.IRightsRelationManager rightsRelationManager = bllFactory.BuildRightsRelationManager();

if (rightsRelationManager.GetRightsRelationByOperatorId(operatorId).Count > 0)

{

if (!rightsRelationManager.DeleteRightsRelationByOperatorId(operatorId))

{

MessageBox.Show(

string.Format("未能刪除操作員 [{0}] 的權(quán)限關(guān)系信息!", operatorName),

"刪除失敗",

MessageBoxButtons.OK,

MessageBoxIcon.Error);

return;

}

}

// 刪除操作員信息

IBLL.IOperatorManager operatorManager = bllFactory.BuildOperatorManager();

if (!operatorManager.DeleteOperatorByID(operatorId))

{

MessageBox.Show(

string.Format("未能刪除操作員 [{0}] 的基本信息!", operatorName),

"刪除失敗",

MessageBoxButtons.OK,

MessageBoxIcon.Error);

return;

}

// 重新加載操作員列表

_rmuManager.LoadOperatorList();

}

catch (Exception ex)

{

MessageBox.Show(

ex.Message,

"刪除失敗",

MessageBoxButtons.OK,

MessageBoxIcon.Error);

}

}

// 如果操作員信息數(shù)量為零

if (_operatorCollection.Count == 0)

{

// 清空權(quán)限列表、操作員列表和權(quán)限視圖

dgvOperatorList.Rows.Clear();

dgvRightsList.Rows.Clear();

tvRightsView.Nodes.Clear();

}

}

///

/// [分組管理]工具欄按鈕點擊事件

///

///

///

private void tsbtnRightsGroupManager_Click(object sender, EventArgs e)

{

frmRightsGroupManager frmRightsGroupManager = new frmRightsGroupManager(this, this.FrmMain);

frmRightsGroupManager.ShowInTaskbar = false;

frmRightsGroupManager.ShowDialog();

// 加載操作員列表

_rmuManager.LoadOperatorList();

// 刷新數(shù)據(jù)顯示到數(shù)據(jù)視圖

_rmuManager.BindOperatorInfoToDataGridView(_operatorCollection);

}

///

/// [權(quán)限列表]單元格驗證事件

///

///

///

private void dgvRightsList_CellValidating(object sender, DataGridViewCellValidatingEventArgs e)

{

if (dgvRightsList.Columns[e.ColumnIndex].Name == "RightsCaption")

{

if (e.FormattedValue.ToString().Trim() == String.Empty)

{

dgvRightsList.Rows[e.RowIndex].ErrorText =

"權(quán)限標題不允許為空字符(空格)!";

MessageBox.Show(

dgvRightsList.Rows[e.RowIndex].ErrorText,

"編輯提示",

MessageBoxButtons.OK,

MessageBoxIcon.Error);

e.Cancel = true;

}

}

}

///

/// [操作員列表]單元格驗證事件

///

///

///

private void dgvOperatorList_CellValidating(object sender, DataGridViewCellValidatingEventArgs e)

{

if (dgvOperatorList.Columns[e.ColumnIndex].Name == "Password")

{

if (e.FormattedValue.ToString().Trim().Length < 6)

{

dgvOperatorList.Rows[e.RowIndex].ErrorText =

"用戶密碼長度不能小于六位!";

MessageBox.Show(

dgvOperatorList.Rows[e.RowIndex].ErrorText,

"編輯提示",

MessageBoxButtons.OK,

MessageBoxIcon.Error);

e.Cancel = true;

}

}

}

///

/// [分組模式]/[用戶模式]工具欄下拉菜單項點擊事件

///

///

///

private void tsmiRightsMode_Click(object sender, EventArgs e)

{

// 勾選點擊菜單項

(sender as ToolStripMenuItem).Checked = true;

// 提交并結(jié)束對當前單元格的編輯

dgvRightsList.EndEdit();

if ((sender as ToolStripMenuItem).Name == tsmiGroupMode.Name)

{

tsmiOperatorMode.Checked = false;

_rightsViewIsChecked = false;

tsbtnRightsGroupManager.Visible = true;

tsbtnRightsMode.Text = tsmiGroupMode.Text;

tvRightsView.ContextMenuStrip = null;

}

if ((sender as ToolStripMenuItem).Name == tsmiOperatorMode.Name)

{

tsmiGroupMode.Checked = false;

_rightsViewIsChecked = true;

tsbtnRightsGroupManager.Visible = false;

tsbtnRightsMode.Text = tsmiOperatorMode.Text;

tvRightsView.ContextMenuStrip = this.cmsRightsTreeView;

}

}

///

/// [權(quán)限模式]工具欄按鈕點擊事件

///

///

///

private void tsbtnRightsMode_ButtonClick(object sender, EventArgs e)

{

// 下拉彈出菜單選項

tsbtnRightsMode.ShowDropDown();

}

#endregion

}

}

總結(jié)

以上是生活随笔為你收集整理的c# mysql 管理员权限_C# winform 权限管理系统完整源码下载(含数据库)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。