C#編輯MySQL數據庫

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;
        }


    }

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章