C# 學習筆記之增刪改查操作

因爲之前有個CSDN的賬號但是後來賬號丟了,於是只能另起爐竈,今天總有找回了丟失已久的登錄祕密,不知道有沒有辦法將兩個博客合併,只能手動複製黏貼以前的博文過來。。。悲慘

源地址:http://blog.csdn.net/sxfenglei/article/details/5431264 該博客不再用了

現在看看當年寫的代碼 真幼稚呵呵 轉過來紀念下當年的稚嫩,哈哈


/// <summary> ­
/// 對話框返回值 ­
/// ­
///這是一個退出按鍵的方法,用來確定用戶是否真的要退出 ­
/// </summary> ­
        private void 退出ToolStripMenuItem_Click(object sender, EventArgs e) ­
        { ­
            //定義 DialogResult 變量 用以存儲對話框返回值 ­
            DialogResult exitForm; ­
            //對話框 ­
            exitForm = MessageBox.Show("馮磊老大您確定要離開我嗎?","退出系統",MessageBoxButtons.OKCancel,MessageBoxIcon.Information); ­
            //判斷 ­
            if (exitForm == DialogResult.OK)   //使用 DialogResult 屬性判斷該按鈕的返回值是否爲 "確定" ­
            { ­
                Application.Exit();//退出系統 ­
            } ­
        } ­
/// <summary> ­
/// 創建 DBManager 類 ­
/// ­
/// 在 DBManager 類中創建數據庫連接 ­
/// </summary> ­
  class DBManager ­
   { ­
    //連接數據庫字符串 和 實例化 connection 對象 ­
    private static string sqlconString = "Data Source=ASUS//SQLEXPRESS;Initial Catalog=MyDB;Integrated Security=True"; ­
    public static SqlConnection con = new SqlConnection(sqlconString); ­
   } ­
/// <summary> ­
/// 創建 User 類 ­
/// ­
/// 在 User 類中創建 用於存儲交換的變量 ­
/// </summary> ­
  class User ­
   { ­
    public string userID = ""; ­
    public string userName = ""; ­
    public string userAge = ""; ­
    public string userGongZi = ""; ­
    public string userJiGuan = ""; ­
   } ­
/// <summary> ­
        /// ExecuteScalar()方法 返回單個值 ­
         ­
        /// 核心 SELECT COUNT(*) FROM Student ­
        /// 核心 com.ExecuteScalar(); ­
/// </summary> ­
//定義數據庫連接字符串 和 connection 對象 ­
string sqlString = "Data Source=ASUS//SQLEXPRESS;Initial Catalog=MySchool;Integrated Security=True"; ­
SqlConnection con = new SqlConnection(sqlString); ­
//打開數據庫 ­
con.Open(); ­
//拼SQL語句 和 創建 command 對象 ­
string sql = "SELECT COUNT(*) FROM Student "; ­
SqlCommand com = new SqlCommand(sql,con); ­
// 執行 SQL 查詢 使用ExecuteScaler()方法 返回一個讀取值 ­
int num = (int)com.ExecuteScalar(); ­
//將返回值格式化後存入變量中 後輸出 ­
string message = string.Format("Student表中共有{0}條學員信息!", num); ­
MessageBox.Show(message, "查詢結果", MessageBoxButtons.OK, MessageBoxIcon.Information);//然後將該變量輸出 ­
//關閉數據庫 ­
con.Close(); ­
/// <summary> ­
        ///  將數據加載到 comboBox 控件中 ­
         ­
        /// 核心 select studentName from student ­
        /// 核心 SqlDataReader dataReader = com.ExecuteReader(); ­
        /// 核心 string studentName = ""; ­
        /// 核心 while (dataReader.Read()){ ­
        /// 核心  studentName = (string)dataReader[0]; ­
        /// 核心 comboBox1.Items.Add(studentName); ­
        /// 核心 } ­
/// </summary> ­
            //定義數據庫字符 和 connection 對象 ­
            string sqlString = "Data Source=ASUS//SQLEXPRESS;Initial Catalog=MySchool;Integrated Security=True"; ­
            SqlConnection con = new SqlConnection(sqlString); ­
            //定義sql語句 和 command 對象 ­
            string sql = "select studentName from student"; ­
            SqlCommand com = new SqlCommand(sql, con); ­
            //打開數據庫 ­
            con.Open(); ­
            //執行sql讀取 使用dataReader對象 ­
            SqlDataReader dataReader = com.ExecuteReader(); ­
            //循環讀取每一條數據 添加到comboBox1 中 ­
            string studentName = "";//將每條讀取存入這個變量 用以每次想comboBox1中添加 ­
            while (dataReader.Read()) ­
            { ­
                studentName = (string)dataReader[0];//從第0項開始讀取 ­
                comboBox1.Items.Add(studentName);//添加每條讀取到 comboBox1 中 ­
            } ­
            //關閉讀取 和 數據庫 ­
            dataReader.Close(); ­
            con.Close(); ­
/// <summary> ­
        /// 將數據加載到 listView 控件中 ­
         ­
        /// 核心 SqlDataReader dataReader = com.ExecuteReader(); ­
        /// 核心 string id = ""; ­
        /// 核心 string adminUser = ""; ­
        /// 核心 string adminPwd = ""; ­
        /// 核心 while (dataReader.Read()){ ­
        /// 核心 id = dataReader["adminId"].ToString(); ­
        /// 核心 adminUser = dataReader["LoginId"].ToString(); ­
        /// 核心 adminPwd = dataReader["LoginPwd"].ToString(); ­
        /// 核心 ListViewItem liv = new ListViewItem(adminUser); ­
        /// 核心 liv.Tag = (int)dataReader["adminId"]; ­
        /// 核心 listView1.Items.Add(liv); ­
        /// 核心 liv.SubItems.AddRange(new string[] { adminPwd }); ­
        /// 核心 } ­
/// </summary> ­
   ­
  private void FillListView() ­
        { ­
   //清空listview   ­
            listView1.Items.Clear(); ­
            //定義數據庫字符 和 connection 對象 ­
            string sqlconString = "Data Source=ASUS//SQLEXPRESS;Initial Catalog=MySchool;Integrated Security=True"; ­
            SqlConnection con = new SqlConnection(sqlconString);//上面定義過 ­
            //拼SQL 和 command 對象 ­
            string sql = "select * from admin";//上面定義過 ­
            SqlCommand com = new SqlCommand(sql, con);//上面定義過 ­
            con.Open(); ­
            //執行SQL語句 ­
            SqlDataReader dataReader = com.ExecuteReader(); ­
            //定義存儲變量 ­
            string id = ""; ­
            string adminUser = ""; ­
            string adminPwd = ""; ­
            //循環讀取數據庫 數據 然後存入變量中 ­
            while (dataReader.Read()) ­
            { ­
                //將數據庫中的數據讀取到變量中 ­
                id = dataReader["adminId"].ToString();//拿到ID ­
                adminUser = dataReader["LoginId"].ToString(); ­
                adminPwd = dataReader["LoginPwd"].ToString(); ­
                //創建 ListView 項 ­
                ListViewItem liv = new ListViewItem(adminUser);//將 adminUser 加載到第一項中 ­
                liv.Tag = (int)dataReader["adminId"]; ­
                listView1.Items.Add(liv);//向listView1中添加一個新項 ­
                liv.SubItems.AddRange(new string[] { adminPwd });//將剩餘項 adminPwd 添加到listView1中 ­
            } ­
            dataReader.Close(); ­
            con.Close(); ­
        }     ­
/// <summary> ­
  /// 單擊 listView 時 將本行數據存入 user 類中的變量中 ­
        /// 核心 定義 user 類 ­
        /// 核心 使用 listView1.SelectedItems[0].SubItems[1].Text.ToString(); 拿到數據 並存入user 類中(需要實例化) ­
/// </summary> ­
        private void listView1_Click(object sender, EventArgs e) ­
        { ­
            //實例化 User 類 ­
            User us = new User(); ­
            //將鼠標點擊的 listView 行的數據存入 user 類中的變量中 ­
            us.userName = listView1.SelectedItems[0].SubItems[1].Text.ToString(); ­
            us.userAge  = listView1.SelectedItems[0].SubItems[2].Text.ToString(); ­
            us.userGongZi = listView1.SelectedItems[0].SubItems[3].Text.ToString(); ­
            us.userJiGuan = listView1.SelectedItems[0].SubItems[4].Text.ToString(); ­
            //將 user類中的數據在放到 textBox 控件中 ­
            txtName.Text = us.userName; ­
            txtAge.Text = us.userAge; ­
            txtGongZi.Text = us.userGongZi; ­
            txtJiGuan.Text = us.userJiGuan; ­
        } ­
/// <summary> ­
        ///  增 ­
         ­
        /// 核心 string sql = string.Format("insert into admin (LoginId,LoginPwd) values ('{0}','{1}')",textBox1.Text,textBox2.Text); ­
        /// 核心 int num =com.ExecuteNonQuery(); ­
/// </summary> ­
   //判斷非空 ­
            if(textBox1.Text.Trim()=="") ­
            { ­
                MessageBox.Show("馮磊老大你叫啥?"); ­
                textBox1.Focus();//得到焦點 ­
                return;//如果爲空則返回空 即結束 ­
            }else if(textBox2.Text.Trim()=="") ­
            { ­
                MessageBox.Show("馮磊老大告訴我密碼?"); ­
                textBox2.Focus(); ­
                return; ­
            } ­
            //定義數據庫連接 和 connection 對象 ­
            string sqlconString = "Data Source=ASUS//SQLEXPRESS;Initial Catalog=MySchool;Integrated Security=True"; ­
            SqlConnection con = new SqlConnection(sqlconString ); ­
            //拼SQL 和 command 對象 ­
            string sql = string.Format("insert into admin (LoginId,LoginPwd) values ('{0}','{1}')",textBox1.Text,textBox2.Text); ­
            SqlCommand com = new SqlCommand(sql,con ); ­
            con.Open(); ­
            //添加數據到數據庫 使用ExecutenNonQuery方法 ­
            int num =com.ExecuteNonQuery(); ­
            //如果添加成功側提示 ­
            if (num==1) ­
            { ­
                MessageBox.Show("馮磊老大添加成功!"); ­
            } ­
            else { ­
                MessageBox.Show("哦哦~~馮磊老大添加失敗!","",MessageBoxButtons.OK,MessageBoxIcon.Error); ­
            } ­
            con.Close(); ­
   //在加載 一遍 listView 可以將創建的listView 抽成方法 如 fillListView(); ­
   fillListView(); ­
/// <summary> ­
        ///  刪 ­
         ­
        /// 核心 if(listView1.SelectedItems.Count==0) ­
        /// 核心 string sql = string.Format("delete from admin where AdminId='{0}'",(int)listView1.SelectedItems[0].Tag); ­
        /// 核心 int test = com.ExecuteNonQuery(); ­
/// </summary> ­
   //確保用戶選擇了一個學員才執行修改操作 ­
            if(listView1.SelectedItems.Count==0) ­
            { ­
                MessageBox.Show("馮磊老大你不告訴我刪除那個我怎麼刪"); ­
                return; ­
            }else{ ­
                 ­
                //定義數據庫連接字符串 和 connection 對象 ­
                string sqlconString = "Data Source=ASUS//SQLEXPRESS;Initial Catalog=MySchool;Integrated Security=True"; ­
                SqlConnection con = new SqlConnection(sqlconString); ­
                //拿ID ­
                string sql = string.Format("delete from admin where AdminId='{0}'",(int)listView1.SelectedItems[0].Tag); ­
                SqlCommand com = new SqlCommand(sql,con); ­
                con.Open(); ­
                //執行SQL ­
                 int test = com.ExecuteNonQuery(); ­
                //提示刪除成功與否 ­
                 if (test > 0) ­
                 { ­
                     MessageBox.Show("馮磊老大我成功的給你滅了它!"); ­
                 } ­
                 else { ­
                     MessageBox.Show("馮磊老大我滅它失敗!"); ­
                 } ­
                con.Close(); ­
            } ­
            /* listView */ ­
            FillListView();//加載FillListView(); ­
/// <summary> ­
  /// 右鍵 刪除 ­
   ­
  /// 核心 listView1.SelectedItems[0].Tag.ToString() ­
/// </summary> ­
   DBManager.con.Open(); ­
            string sql = string.Format("delete from yuangong where id='{0}'",listView1.SelectedItems[0].Tag.ToString());//listView1.SelectedItems[0].Tag.ToString();  //拿到ID ­
            SqlCommand com = new SqlCommand(sql,DBManager.con); ­
            int shanChu = com.ExecuteNonQuery(); ­
            DBManager.con.Close(); ­
   /* listView */ ­
            FillListView();//加載FillListView(); ­
/// <summary> ­
        ///  改 ­
         ­
        /// 核心 (int)listView1.SelectedItems[0].Tag ­
        /// 核心 update YuanGong set name='{0}',age='{1}',gongzi='{2}',jiguan='{3}' where id={4} ­
        /// 核心 int Run = com.ExecuteNonQuery(); ­
/// </summary> ­
   SqlConnection sql = string.Format("update YuanGong set name='{0}',age='{1}',gongzi='{2}',jiguan='{3}' where id={4}", txtName.Text, txtAge.Text, txtGongZi.Text, txtJiGuan.Text, (int)listView1.SelectedItems[0].Tag); ­
   SqlCommand com = new SqlCommand(sql, DBManager.con); ­
   DBManager.con.Open(); ­
   int Run = com.ExecuteNonQuery(); ­
   if (Run == 1) ­
   { ­
    DBManager.con.Close(); ­
    FillListView(); ­
   } ­
   else ­
   { ­
    MessageBox.Show("馮磊老大修改失敗!", "提示框", MessageBoxButtons.OK, MessageBoxIcon.Error); ­
    DBManager.con.Close(); ­
   } ­
/// <summary> ­
        ///  查 ­
         ­
        /// 核心 listView1.Items.Clear(); ­
        /// 核心 if (!datareader.HasRows) ­
        /// 核心 SqlDataReader datareader = com.ExecuteReader(); ­
/// </summary> ­
   listView1.Items.Clear(); ­
   ­
   string id = ""; ­
   string name = ""; ­
   string age = ""; ­
   string gongzi = ""; ­
   string jiguan = ""; ­
   sql = string.Format("select * from yuangong where name='{0}' or age='{1}' or gongzi='{2}' or jiguan='{3}'", txtName.Text, txtAge.Text, txtGongZi.Text, txtJiGuan.Text); ­
   com = new SqlCommand(sql, DBManager.con); ­
   SqlDataReader datareader = com.ExecuteReader(); ­
   if (!datareader.HasRows) ­
   { ­
    MessageBox.Show("哦哦~~~馮磊老大沒有在國防部查到你要的數據!"); ­
    datareader.Close(); ­
    DBManager.con.Close(); ­
    return; ­
   } ­
   else { ­
    while(datareader.Read()) ­
    { ­
     id=datareader["ID"].ToString(); ­
     name=datareader["name"].ToString(); ­
     age=datareader["age"].ToString(); ­
     gongzi=datareader["gongzi"].ToString(); ­
     jiguan=datareader["jiguan"].ToString(); ­
     ListViewItem liv = new ListViewItem(id); ­
     liv.Tag=(int)datareader["ID"]; ­
     listView1.Items.Add(liv); ­
     liv.SubItems.AddRange(new string []{name,age,gongzi,jiguan}); ­
    } ­
    datareader.Close(); ­
    DBManager.con.Close(); ­
   } ­
//============================================================================================
MessageBox.Show(listView1.SelectedItems[0].Tag.ToString());  //拿到ID ­
MessageBox.Show(listView1.SelectedItems[0].SubItems[0].Text);  //拿到第一列的單元格的值 ­
//============================================================================================
/// <summary> ­
/// 創建 全局變量 ­
/// </summary> ­
        //實例化 dataSet 和 聲明 dataAdapter ­
        DataSet dataSet = new DataSet(); ­
        SqlDataAdapter dataAdapter; ­
        //聲明字符 ­
        string sql =""; ­
         ­
         ­
         ­
         ­
/// <summary> ­
/// 創建 fillDataGridView方法 ­
/// </summary> ­
        private void fillDataGridView() ­
        { ­
            //拼基本 SQL 語句 ­
            sql = "select id as 編號,name as 姓名,age as 年齡,gongzi as 工資,jiguan as 籍貫 from yuangong "; ­
            //實例化 dataAdapter ­
            dataAdapter = new SqlDataAdapter(sql, DBManager.con); ­
            //填充 dataSet ­
            dataAdapter.Fill(dataSet, "yuanGong"); ­
            //將數據綁定到 dataGridView中 ­
            dataGridView1.DataSource = dataSet.Tables["yuanGong"]; ­
        } ­
         ­
         ­
         ­
         ­
/// <summary> ­
/// 篩選 數據 ­
/// </summary> ­
            //刷新基本 SQL 語句 ­
            sql = "select id as 編號,name as 姓名,age as 年齡,gongzi as 工資,jiguan as 籍貫 from yuanGong "; ­
            //拼接 條件SQL 語句 ­
            switch(comboBox1.Text) ­
            { ­
                case "全部": ­
                    break; ­
                case "河南": ­
                    sql = sql + "where  jiguan='河南'"; ­
                    break; ­
                case "浙江": ­
                    sql = sql + "where jiguan='浙江'"; ­
                    break; ­
                case "陝西": ­
                    sql = sql + "where jiguan='陝西'"; ­
                    break; ­
                case "河北": ­
                    sql = sql + "where jiguan='河北'"; ­
                    break; ­
                case "青島": ­
                    sql = sql + "where jiguan='青島'"; ­
                    break; ­
            } ­
            //清空 dataSet ­
            dataSet.Tables["yuanGong"].Clear(); ­
            //實例化 dataAdapter ­
            dataAdapter = new SqlDataAdapter(sql,DBManager.con); ­
            //填充 dataSet ­
            dataAdapter.Fill(dataSet, "yuanGong"); ­
            //將數據綁定到 dataGridView中 ­
            dataGridView1.DataSource = dataSet.Tables["yuanGong"]; ­
/// <summary> ­
/// 更新 數據到數據源 ­
/// </summary> ­
            // 確認修改 ­
            DialogResult result = MessageBox.Show("馮磊老大確定要保存修改嗎?", "操作提示",MessageBoxButtons.OKCancel, MessageBoxIcon.Question); ­
            if (result == DialogResult.OK) ­
                { ­
                    // 自動生成更新數據用的命令 ­
                    SqlCommandBuilder comBui = new SqlCommandBuilder(dataAdapter); ­
                    // 將修改過的數據提交到數據庫 ­
                    dataAdapter.Update(dataSet, "yuanGong"); ­
                } ­
            //清空 dataSet ­
            dataSet.Tables["yuanGong"].Clear(); ­
            //重新加載數據到 dataGridView 中 ­
            fillDataGridView(); ­
///窗體間傳值 ­
   ­
/*公共類*/   ­
   //創建類 ­
   public class readEmail ­
    { ­
      public static string userName=""; ­
      public static string emailName = ""; ­
      public static string emailContent = ""; ­
     ­
    } ­
     ­
/*from1*/ ­
   //將鼠標點擊的 listView 行的數據存入 read 類中的變量中 ­
            readEmail.userName  = listView1.SelectedItems[0].SubItems[0].Text.ToString(); ­
            readEmail.emailName = listView1.SelectedItems[0].SubItems[1].Text.ToString(); ­
            readEmail.emailContent  = listView1.SelectedItems[0].SubItems[2].Text.ToString(); ­
   //打開新窗體 ­
            emailWinFrom emailwinfrom = new emailWinFrom(); ­
            emailwinfrom.ShowDialog();   ­
             ­
             ­
/*from2*/ ­
            //將內容顯示在新窗體的textbox 中 ­
            textBox2.Text = readEmail.userName; ­
            textBox3.Text = readEmail.emailName; ­
            textBox1.Text = readEmail.emailContent;­


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