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; using System.Data.OracleClient; namespace Cyberpipe { public partial class SysRescInfoManager : Office2007Form { public static bool IS_OPEN = false; int maxPageIndex = 10; int rows = 0; public SysRescInfoManager() { 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 SysRescInfoManager_Load(object sender, EventArgs e) { IS_OPEN = true; LoadData(); if (Utility.userRole.IndexOf("资源新增") == -1) { btn_add.Visible = false; } if (Utility.userRole.IndexOf("资源删除") == -1) { winGridViewPager1.dataGridView1.ContextMenuStrip.Items[3].Visible = false; } } private void SysRescInfoManager_FormClosing(object sender, FormClosingEventArgs e) { IS_OPEN = false; } /* private void btn_add_Click(object sender, EventArgs e) { try { if (String.IsNullOrEmpty(txt_resc_name.Text.Trim())) { MessageBox.Show("资源名称不能为空!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } string sql = "insert into casic_userresctest (resc,desp,sysname) values ('" + txt_resc_name.Text.Trim() + "','" + txt_resc_des.Text.Trim() + "','EMS')"; 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); } }*/ /// <summary> /// 初始化分页表格 /// </summary> private void initlizeDatagrid() { //控制表格显示的列,以及每一列要显示的列名 this.winGridViewPager1.Dock = DockStyle.Fill; this.winGridViewPager1.dataGridView1.Dock = DockStyle.Fill; this.winGridViewPager1.AddColumnAlias("资源名称", "资源名称"); 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]; if (MessageBox.Show("确定删除?", "确认", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) { string dbid = row.Cells["编号"].Value.ToString(); string resc = row.Cells["资源名称"].Value.ToString(); OracleConnection conn = null; OracleTransaction tran = null; try { conn = new OracleConnection(OracleUtils.ConnectionString); if (conn.State == ConnectionState.Closed) { conn.Open(); } tran = conn.BeginTransaction(); string sql = "delete from casic_userresctest where id=" + dbid; OracleUtils.ExecuteNonQuery(tran, CommandType.Text, sql); List<string> list = new List<string>(); sql = "select id,gid from casic_userroletest where sysname='EMS' and gid like '%" + resc + "%'"; using (OracleDataReader reader = OracleUtils.ExecuteReader(tran, CommandType.Text, sql)) { while (reader.Read()) { list.Add("update casic_userroletest set gid='" + reader["gid"].ToString().Replace(resc + ",", "").Replace(resc, "") + "' where id=" + reader["id"].ToString()); } } foreach (string str in list) { OracleUtils.ExecuteNonQuery(tran, CommandType.Text, str); } tran.Commit(); MessageBox.Show("删除成功!", "结果", MessageBoxButtons.OK, MessageBoxIcon.Information); LoadData(); } catch (Exception ex) { if (null != tran) { tran.Rollback(); } MessageBox.Show("删除失败:" + ex.ToString(), "错误", MessageBoxButtons.OK, MessageBoxIcon.Error); } finally { if (null != conn && conn.State == ConnectionState.Open) { conn.Close(); } } } } 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(*) from casic_userresctest where sysname='EMS'"; string sqlData = "select resc as 资源名称,id as 编号,desp as 资源描述 " + "from (select t.*,rownum row_num from casic_userresctest 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(*) from casic_userresctest where sysname='EMS'"; string sqlData = "select resc as 资源名称,id as 编号,desp as 资源描述 " + "from (select t.*,rownum row_num from casic_userresctest 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; } } }