using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using MySQLDriverCS;
namespace ScientificManage
{
public partial class Form1 : Form
{
private MySQLConnection conn;
//============模板
private DataSet mDs;
private MySQLDataAdapter mAda;
private MySQLParameter mPar;
private MySQLParameter mPar1;
private MySQLParameter mPar2;
private MySQLParameter mPar3;
private MySQLParameter mPar4;
private MySQLParameter mPar5;
private MySQLCommand mUpdCmd;
private MySQLCommand mDelCmd;
private MySQLCommand mInsertCmd;
//============权限
private DataSet pDs;
private MySQLDataAdapter pAda;
private MySQLParameter pPar;
private MySQLParameter pPar1;
private MySQLParameter pPar2;
private MySQLParameter pPar3;
private MySQLParameter pPar5;
private MySQLCommand pUpdCmd;
private MySQLCommand pDelCmd;
private MySQLCommand pInsertCmd;
//=============节点
private DataSet nDs;
private MySQLDataAdapter nAda;
private MySQLParameter nPar;
private MySQLParameter nPar1;
private MySQLParameter nPar2;
private MySQLParameter nPar3;
private MySQLParameter nPar4;
private MySQLParameter nPar5;
private MySQLParameter nPar6;
private MySQLParameter nPar7;
private MySQLCommand nUpdCmd;
private MySQLCommand nDelCmd;
private MySQLCommand nInsertCmd;
public Form1()
{
InitializeComponent();
DataPath path = new DataPath();
conn = new MySQLConnection(path.DataBasePath().ToString());
//========模板
conn.Open();
mAda = new MySQLDataAdapter("select * from oa_module ", conn);
mDs = new DataSet();
//UPDATE语句
string mQuery = "UPDATE oa_module SET modulename = @name ,modulechinese =@chinese,moduledescription=@description ,`index`=@index WHERE id = @id";
mPar = new MySQLParameter("@name", System.Data.DbType.String, "modulename");
mPar.SourceVersion = DataRowVersion.Current;
mPar2 = new MySQLParameter("@chinese", System.Data.DbType.String, "modulechinese");
mPar2.SourceVersion = DataRowVersion.Current;
mPar3 = new MySQLParameter("@description", System.Data.DbType.String, "moduledescription");
mPar3.SourceVersion = DataRowVersion.Current;
mPar4 = new MySQLParameter("@index", System.Data.DbType.Int16, "index");
mPar4.SourceVersion = DataRowVersion.Current;
mPar1 = new MySQLParameter("@id", System.Data.DbType.Int16, "id");
mPar1.SourceVersion = DataRowVersion.Original;
mUpdCmd = new MySQLCommand(mQuery, conn);
mUpdCmd.CommandType = CommandType.Text;
mUpdCmd.Parameters.Add(mPar);
mUpdCmd.Parameters.Add(mPar1);
mUpdCmd.Parameters.Add(mPar2);
mUpdCmd.Parameters.Add(mPar3);
mUpdCmd.Parameters.Add(mPar4);
mAda.UpdateCommand = mUpdCmd;
//DELETE语句
string mDelSting = "DELETE FROM oa_module WHERE id= @id";
mPar5 = new MySQLParameter("@id", System.Data.DbType.Int16, "id");
mPar5.SourceVersion = DataRowVersion.Original;
mDelCmd = new MySQLCommand(mDelSting, conn);
mDelCmd.CommandType = CommandType.Text;
mDelCmd.Parameters.Add(mPar5);
mAda.DeleteCommand = mDelCmd;
//INSERT语句
string mInsertString = "INSERT INTO oa_module (modulename,modulechinese,moduledescription,`index`) VALUES (@name,@chinese,@description,@index)";
mInsertCmd = new MySQLCommand(mInsertString, conn);
mInsertCmd.CommandType = CommandType.Text;
mInsertCmd.Parameters.Add(mPar);
mInsertCmd.Parameters.Add(mPar2);
mInsertCmd.Parameters.Add(mPar3);
mInsertCmd.Parameters.Add(mPar4);
mAda.InsertCommand = mInsertCmd;
mAda.Fill(mDs, "oa_module");
conn.Close();
//===========权限
conn.Open();
pAda = new MySQLDataAdapter("select * from oa_power ", conn);
pDs = new DataSet();
//UPDATE语句
string pQuery = "UPDATE oa_power SET powername = @name ,powerchinese =@chinese ,moduleid=@moduleid WHERE id = @id";
pPar = new MySQLParameter("@name", System.Data.DbType.String, "powername");
pPar.SourceVersion = DataRowVersion.Current;
pPar2 = new MySQLParameter("@chinese", System.Data.DbType.String, "powerchinese");
pPar2.SourceVersion = DataRowVersion.Current;
pPar3 = new MySQLParameter("@moduleid", System.Data.DbType.Int16, "moduleid");
pPar3.SourceVersion = DataRowVersion.Current;
pPar1 = new MySQLParameter("@id", System.Data.DbType.Int16, "id");
pPar1.SourceVersion = DataRowVersion.Original;
pUpdCmd = new MySQLCommand(pQuery, conn);
pUpdCmd.CommandType = CommandType.Text;
pUpdCmd.Parameters.Add(pPar);
pUpdCmd.Parameters.Add(pPar1);
pUpdCmd.Parameters.Add(pPar2);
pUpdCmd.Parameters.Add(pPar3);
pAda.UpdateCommand = pUpdCmd;
//DELETE语句
string pDelSting = "DELETE FROM oa_power WHERE id= @id";
pPar5 = new MySQLParameter("@id", System.Data.DbType.Int16, "id");
pPar5.SourceVersion = DataRowVersion.Original;
pDelCmd = new MySQLCommand(pDelSting, conn);
pDelCmd.CommandType = CommandType.Text;
pDelCmd.Parameters.Add(pPar5);
pAda.DeleteCommand = pDelCmd;
//INSERT语句
string pInsertString = "INSERT INTO oa_power (powername,powerchinese,moduleid) VALUES (@name,@chinese,@moduleid)";
pInsertCmd = new MySQLCommand(pInsertString, conn);
pInsertCmd.CommandType = CommandType.Text;
pInsertCmd.Parameters.Add(pPar);
pInsertCmd.Parameters.Add(pPar2);
pInsertCmd.Parameters.Add(pPar3);
pAda.InsertCommand = pInsertCmd;
pAda.Fill(pDs, "oa_module");
conn.Close();
//===========节点
conn.Open();
nAda = new MySQLDataAdapter("select * from oa_systablenode ", conn);
nDs = new DataSet();
//UPDATE语句
string nQuery = "UPDATE oa_systablenode SET firstnode = @node ,`index` =@nodeindex,nodename=@nodename ,url=@url ,tabicon=@tabicon,powerid=@powerid WHERE id = @id";
nPar = new MySQLParameter("@node", System.Data.DbType.String, "firstnode");
nPar.SourceVersion = DataRowVersion.Current;
nPar2 = new MySQLParameter("@nodename", System.Data.DbType.String, "nodename");
nPar2.SourceVersion = DataRowVersion.Current;
nPar3 = new MySQLParameter("@url", System.Data.DbType.String, "url");
nPar3.SourceVersion = DataRowVersion.Current;
nPar4 = new MySQLParameter("@nodeindex", System.Data.DbType.Int16, "index");
nPar4.SourceVersion = DataRowVersion.Current;
nPar6 = new MySQLParameter("@tabicon", System.Data.DbType.String, "tabicon");
nPar6.SourceVersion = DataRowVersion.Current;
nPar7 = new MySQLParameter("@powerid", System.Data.DbType.Int16, "powerid");
nPar7.SourceVersion = DataRowVersion.Current;
nPar1 = new MySQLParameter("@id", System.Data.DbType.Int16, "id");
nPar1.SourceVersion = DataRowVersion.Original;
nUpdCmd = new MySQLCommand(nQuery, conn);
nUpdCmd.CommandType = CommandType.Text;
nUpdCmd.Parameters.Add(nPar);
nUpdCmd.Parameters.Add(nPar1);
nUpdCmd.Parameters.Add(nPar2);
nUpdCmd.Parameters.Add(nPar3);
nUpdCmd.Parameters.Add(nPar4);
nUpdCmd.Parameters.Add(nPar6);
nUpdCmd.Parameters.Add(nPar7);
nAda.UpdateCommand = nUpdCmd;
//DELETE语句
string nDelSting = "DELETE FROM oa_systablenode WHERE id= '@id'";
nPar5 = new MySQLParameter("@id", System.Data.DbType.Int16, "id");
nPar5.SourceVersion = DataRowVersion.Original;
nDelCmd = new MySQLCommand(nDelSting, conn);
nDelCmd.CommandType = CommandType.Text;
nDelCmd.Parameters.Add(nPar5);
nAda.DeleteCommand = nDelCmd;
//INSERT语句
string nInsertString = "INSERT INTO oa_systablenode (firstnode,`index`,nodename,url,tabicon,powerid) VALUES (@node,@nodeindex,@nodename,@url,@tabicon,@powerid)";
nInsertCmd = new MySQLCommand(nInsertString, conn);
nInsertCmd.CommandType = CommandType.Text;
nInsertCmd.Parameters.Add(nPar);
nInsertCmd.Parameters.Add(nPar2);
nInsertCmd.Parameters.Add(nPar3);
nInsertCmd.Parameters.Add(nPar4);
nInsertCmd.Parameters.Add(nPar6);
nInsertCmd.Parameters.Add(nPar7);
nAda.InsertCommand = nInsertCmd;
nAda.Fill(nDs, "oa_systablenode");
conn.Close();
//===============加载模板comboxMod
LoadComboxMod();
}
private void LoadComboxMod()
{
//===============加载模板comboxMod
MySQLCommand cmd4 = new MySQLCommand();
DataSet ds4 = new DataSet();
cmd4.CommandText = "SELECT modulechinese FROM oa_module";
cmd4.Connection = conn;
MySQLDataAdapter ada4 = new MySQLDataAdapter(cmd4);
ada4.Fill(ds4, "oa_module");
this.comboBoxMod.DataSource = ds4.Tables["oa_module"];
this.comboBoxMod.DisplayMember = "modulechinese";
}
private void Save(DataSet ds,MySQLDataAdapter ada)
{
//将更改的数据更新到数据表里
if (ds.Tables[0].GetChanges() != null)
{
ada.Update(ds.Tables[0].GetChanges());
MessageBox.Show("数据更新成功!");
//DataTable接受更改,以便为下一次更改作准备
ds.AcceptChanges();
}
else
{
MessageBox.Show("未做修改!");
}
}
private void Delete(DataSet ds,MySQLDataAdapter ada)
{
if (MessageBox.Show("确定要删除当前行数据?", "", MessageBoxButtons.OKCancel) == DialogResult.OK)
{
try
{
if (ds.Tables[0].GetChanges() != null)
{
//将更改的数据更新到数据表里
ada.Update(ds.Tables[0].GetChanges());
MessageBox.Show("数据删除成功!");
//DataTable接受更改,以便为下一次更改作准备
ds.AcceptChanges();
}
}
catch (MySQLException ex)
{
MessageBox.Show(ex.ToString());
}
}
else
{
//取消对DataTable的更改
ds.Tables[0].RejectChanges();
}
}
public void InitDataGridPowerV()
{
DataSet dsP = new DataSet();
MySQLCommand cmdP = new MySQLCommand();
cmdP.Connection = conn;
MySQLDataAdapter adaP = new MySQLDataAdapter(cmdP);
cmdP.CommandText = "SELECT id,powerchinese FROM oa_power";
adaP.Fill(dsP, "oa_power");
this.dataGridViewPowerV.DataSource = dsP.Tables["oa_power"];
this.dataGridViewPowerV.Columns[0].HeaderText = "权限ID";
this.dataGridViewPowerV.Columns[1].HeaderText = "权限中文名称";
this.dataGridViewPowerV.Columns[0].Width = 70;
this.dataGridViewPowerV.Columns[1].Width = 100;
}
private void Form1_Load(object sender, EventArgs e)
{
this.MaximizeBox = false;
//==============模块
this.dataGridViewMod.DataSource = mDs.Tables[0];
this.dataGridViewMod.Columns[0].Visible = false;
this.dataGridViewMod.Columns[1].HeaderText = "模块名称";
this.dataGridViewMod.Columns[2].HeaderText = "中文名称";
this.dataGridViewMod.Columns[3].HeaderText = "模块描述";
this.dataGridViewMod.Columns[4].HeaderText = "索引";
//===============权限
this.dataGridViewPower.DataSource = pDs.Tables[0];
this.dataGridViewPower.Columns[0].Visible = false;
this.dataGridViewPower.Columns[1].HeaderText = "英文名称";
this.dataGridViewPower.Columns[2].HeaderText = "中文名称";
this.dataGridViewPower.Columns[3].HeaderText = "所属模块";
//================节点
this.dataGridViewNode.DataSource =nDs.Tables[0] ;
this.dataGridViewNode.Columns[0].Visible = false;
this.dataGridViewNode.Columns[1].HeaderText = "上级节点ID";
this.dataGridViewNode.Columns[2].HeaderText = "索引";
this.dataGridViewNode.Columns[3].HeaderText = "节点名称";
this.dataGridViewNode.Columns[4].HeaderText = "节点路径";
this.dataGridViewNode.Columns[5].HeaderText = "节点图标路径";
this.dataGridViewNode.Columns[6].HeaderText = "对应的权限id";
//================权限中的模块表
this.dataGridViewModV.DataSource = mDs.Tables[0];
this.dataGridViewModV.Columns[3].Visible = false;
this.dataGridViewModV.Columns[4].Visible = false;
this.dataGridViewModV.Columns[1].Visible = false;
this.dataGridViewModV.Columns[0].Width = 80;
this.dataGridViewModV.Columns[0].HeaderText = "模块ID";
this.dataGridViewModV.Columns[2].HeaderText = "中文名称";
InitDataGridPowerV();
}
private void butSav_Click(object sender, EventArgs e)
{
Save(mDs,mAda);
this.dataGridViewMod.ReadOnly = true;
}
private void butEdit_Click(object sender, EventArgs e)
{
this.dataGridViewMod.ReadOnly = false;
MessageBox.Show("开始编辑!");
}
private void butDel_Click(object sender, EventArgs e)
{
mDs.Tables[0].Rows[dataGridViewMod.CurrentRow.Index].Delete();
Delete(mDs,mAda);
}
private void butEdit2_Click(object sender, EventArgs e)
{
this.dataGridViewPower.ReadOnly = false;
MessageBox.Show("开始编辑!");
}
private void butSav2_Click(object sender, EventArgs e)
{
Save(pDs, pAda);
this.dataGridViewPower.ReadOnly = true;
}
private void butDel2_Click(object sender, EventArgs e)
{
pDs.Tables[0].Rows[dataGridViewPower.CurrentRow.Index].Delete();
Delete(pDs, pAda);
}
private void butEdit3_Click(object sender, EventArgs e)
{
this.dataGridViewNode.ReadOnly = false;
MessageBox.Show("开始编辑!");
}
private void butSav3_Click(object sender, EventArgs e)
{
Save(nDs, nAda);
this.dataGridViewNode.ReadOnly = true;
}
private void butDel3_Click(object sender, EventArgs e)
{
nDs.Tables[0].Rows[dataGridViewNode.CurrentRow.Index].Delete();
Delete(nDs, nAda);
}
private void button2_Click(object sender, EventArgs e)
{
InitDataGridPowerV();
LoadComboxMod();
}
private void butSearch_Click(object sender, EventArgs e)
{
MySQLCommand cmdS = new MySQLCommand();
DataSet dsS = new DataSet();
MySQLDataAdapter adaS = new MySQLDataAdapter(cmdS);
cmdS.Connection = conn;
cmdS.CommandText = "SELECT id FROM oa_module WHERE modulechinese='" + this.comboBoxMod.Text.Trim() + "'";
adaS.Fill(dsS, "oa_module");
this.comboBox1.DataSource = dsS.Tables["oa_module"];
this.comboBox1.DisplayMember = "id";
string combtext = this.comboBox1.Text.Trim();
int idt = Convert.ToInt32(combtext);
DataSet dsP = new DataSet();
MySQLCommand cmdP = new MySQLCommand();
cmdP.Connection = conn;
MySQLDataAdapter adaP = new MySQLDataAdapter(cmdP);
cmdP.CommandText = "SELECT id,powerchinese FROM oa_power WHERE moduleid='" + idt + "'";
adaP.Fill(dsP, "oa_power");
this.dataGridViewPowerV.DataSource = dsP.Tables["oa_power"];
this.dataGridViewPowerV.Columns[0].HeaderText = "权限ID";
this.dataGridViewPowerV.Columns[1].HeaderText = "权限中文名称";
this.dataGridViewPowerV.Columns[0].Width = 70;
this.dataGridViewPowerV.Columns[1].Width = 100;
}
}
}