using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using DevComponents.DotNetBar; namespace Cyberpipe { public partial class FrmRoleInfoManager : Office2007Form { int maxPageIndex = 20; int rows = 0; public static bool IS_OPEN = false; public FrmRoleInfoManager() { InitializeComponent(); winGridViewPager1.OnPageChanged += new EventHandler(winGridViewPager1_OnPageChanged); this.winGridViewPager1.OnDeleteSelected += new EventHandler(winGridViewPager1_OnDeleteSelected);//删除 this.winGridViewPager1.OnStartExport += new EventHandler(pager1_OnStartExport); this.winGridViewPager1.OnEndExport += new EventHandler(pager1_OnEndExport); winGridViewPager1.dataGridView1.MultiSelect = false; } private void FrmRoleInfoManager_Load(object sender, EventArgs e) { LoadData(); if (Utility.userRole.IndexOf("角色新增") == -1) { btn_add.Visible = false; } if (Utility.userRole.IndexOf("角色删除") == -1) { winGridViewPager1.dataGridView1.ContextMenuStrip.Items[3].Visible = false; } IS_OPEN = true; } /// <summary> /// 初始化分页表格 /// </summary> private void initlizeDatagrid() { //控制表格显示的列,以及每一列要显示的列名 this.winGridViewPager1.Dock = DockStyle.Fill; this.winGridViewPager1.dataGridView1.Dock = DockStyle.Fill; this.winGridViewPager1.AddColumnAlias("角色名称", "角色名称"); this.winGridViewPager1.AddColumnAlias("编号", "编号"); this.winGridViewPager1.DisplayColumns = "角色名称"; winGridViewPager1.BackColor = Color.LightCyan;//间隔颜色 //隐藏右键功能按钮 winGridViewPager1.dataGridView1.ContextMenuStrip.Items[1].Visible = false; winGridViewPager1.dataGridView1.ContextMenuStrip.Items[2].Visible = false; winGridViewPager1.dataGridView1.ContextMenuStrip.Items[4].Visible = false; winGridViewPager1.dataGridView1.ContextMenuStrip.Items[5].Visible = false; winGridViewPager1.dataGridView1.ContextMenuStrip.Items[6].Visible = false; winGridViewPager1.dataGridView1.ContextMenuStrip.Items[7].Visible = false; winGridViewPager1.dataGridView1.ContextMenuStrip.Items[3].Text = "删除"; //右键菜单宽度 winGridViewPager1.dataGridView1.ContextMenuStrip.AutoSize = false; winGridViewPager1.dataGridView1.ContextMenuStrip.Width = 150; //数据铺满表格 this.winGridViewPager1.dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill; //居中 System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle(); dataGridViewCellStyle1.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter; this.winGridViewPager1.dataGridView1.DefaultCellStyle = dataGridViewCellStyle1; this.winGridViewPager1.dataGridView1.ColumnHeadersDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter; winGridViewPager1.Refresh(); //控制间隔的颜色 winGridViewPager1.BackColor = Color.LightCyan;//间隔颜色 //控制每页显示的最大数据量 winGridViewPager1.PagerInfo.RecordCount = rows; winGridViewPager1.PagerInfo.PageSize = maxPageIndex; winGridViewPager1.dataGridView1.Refresh(); //winGridViewPager1.Controls.RemoveAt(1); } /// <summary> /// 页面刷新 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void winGridViewPager1_OnPageChanged(object sender, EventArgs e) { LoadData(); } void pager1_OnEndExport(object sender, EventArgs e) { } void pager1_OnStartExport(object sender, EventArgs e) { int pageIndex = winGridViewPager1.PagerInfo.CurrenetPageIndex; string where = GetSql(); DataTable table = OracleUtils.ExecuteDataset(OracleUtils.ConnectionString, CommandType.Text, where).Tables[0]; this.winGridViewPager1.AllToExport = table; } /// <summary> /// 删除 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void winGridViewPager1_OnDeleteSelected(object sender, EventArgs e) { DataGridView grid = sender as DataGridView; if (grid != null && grid.SelectedRows.Count > 0) { DataGridViewRow row = grid.SelectedRows[0]; try { string dbid = row.Cells["编号"].Value.ToString(); string sql1 = "select * from casic_userinfotest where USERNAME='" + Utility.userName +"'"; DataTable dt = OledbHelper.QueryTable(sql1); if (dt != null && dt.Rows.Count > 0) { if (!String.IsNullOrEmpty(dt.Rows[0]["rid"].ToString())) { if (dt.Rows[0]["rid"].ToString().Equals(dbid)) { MessageBox.Show("无法删除自己的角色", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } } } if (MessageBox.Show("确定删除?", "确认", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) { string sql = "delete from casic_userroletest where id=" + dbid; OracleUtils.ExecuteNonQuery(OracleUtils.ConnectionString, CommandType.Text, sql); LoadData(); MessageBox.Show("删除成功!", "结果", MessageBoxButtons.OK, MessageBoxIcon.Information); } } catch (Exception ex) { MessageBox.Show("删除失败:" + ex.ToString(), "错误", MessageBoxButtons.OK, MessageBoxIcon.Error); } } else { MessageBox.Show("没有选择记录", "提示"); } } private void LoadData() { int pageIndex = winGridViewPager1.PagerInfo.CurrenetPageIndex; string sqlData = GetSql(pageIndex); initlizeDatagrid(); DataTable table = OracleUtils.ExecuteDataset(OracleUtils.ConnectionString, CommandType.Text, sqlData).Tables[0]; winGridViewPager1.DataSource = table.DefaultView; } private void LoadData(int pageIndex) { string sqlData = GetSql(pageIndex); initlizeDatagrid(); DataTable table = OracleUtils.ExecuteDataset(OracleUtils.ConnectionString, CommandType.Text, sqlData).Tables[0]; winGridViewPager1.DataSource = table.DefaultView; winGridViewPager1.Refresh(); } private string GetSql() { string sqlCount = "select count(1) from casic_userroletest where sysname='EMS'"; string sqlData = "select nt as 角色名称,id as 编号 " + "from (select t.*,rownum row_num from casic_userroletest t order by id desc)b " + " where sysname='EMS'"; rows = int.Parse(OracleUtils.ExecuteScalar(OracleUtils.ConnectionString, CommandType.Text, sqlCount).ToString()); return sqlData; } private string GetSql(int pageIndex) { int minPage = (pageIndex - 1) * maxPageIndex + 1; int maxPage = pageIndex * maxPageIndex; string sqlCount = "select count(1) from casic_userroletest where sysname='EMS'"; string sqlData = "select nt as 角色名称,id as 编号 " + "from (select t.*,rownum row_num from casic_userroletest t where sysname='EMS' order by id desc)b " + " where(b.row_num between " + minPage + " and " + maxPage + ")"; rows = int.Parse(OracleUtils.ExecuteScalar(OracleUtils.ConnectionString, CommandType.Text, sqlCount).ToString()); return sqlData; } private void btn_add_Click(object sender, EventArgs e) { try { if (String.IsNullOrEmpty(txt_role_name.Text.Trim())) { MessageBox.Show("角色名称不能为空!","警告",MessageBoxButtons.OK,MessageBoxIcon.Warning); return; } string sql = "select count(*) from casic_userroletest where nt='" + txt_role_name.Text.Trim() + "' and sysname='EMS'"; int count = int.Parse(OracleUtils.ExecuteScalar(OracleUtils.ConnectionString, CommandType.Text, sql).ToString()); if (count > 0) { MessageBox.Show("角色名称已存在!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } sql = "insert into casic_userroletest (nt,sysname) values ('" + txt_role_name.Text.Trim() + "','EMS')"; OracleUtils.ExecuteNonQuery(OracleUtils.ConnectionString,CommandType.Text,sql); MessageBox.Show("新增成功!", "结果", MessageBoxButtons.OK, MessageBoxIcon.Information); LoadData(1); } catch (Exception ex) { MessageBox.Show("新增失败:" + ex.ToString(), "错误", MessageBoxButtons.OK, MessageBoxIcon.Error); } } private void FrmRoleInfoManager_FormClosing(object sender, FormClosingEventArgs e) { IS_OPEN = false; } } }