private int AddCourseToNewTeacher(string teacher_id, string course_id)
        {
            DataTable old_courses = SQL_Help.ExecuteDataTable("select courses from teacher_info where id=@id;", connection, new MySqlParameter[] { new MySqlParameter("@id", MySqlDbType.VarChar)
                                                                                                                                                   {
                                                                                                                                                       Value = teacher_id
                                                                                                                                                   } });
            List <string> old_courses_list = new List <string>(old_courses.Rows[0][0].ToString().Split(','));

            if (old_courses_list[0].Length == 0)
            {
                old_courses_list.Clear();
            }
            old_courses_list.Add(course_id);
            string new_courses = string.Join(",", old_courses_list.ToArray());

            return(SQL_Help.ExecuteNonQuery("update teacher_info set courses=@courses where id=@id;", connection, new MySqlParameter[]
            {
                new MySqlParameter("@id", MySqlDbType.VarChar)
                {
                    Value = teacher_id
                },
                new MySqlParameter("@courses", MySqlDbType.Text)
                {
                    Value = new_courses
                }
            }));
        }
 private void dgv_CellContentClick(object sender, DataGridViewCellEventArgs e)
 {
     if (e.RowIndex >= 0 && dgv.Rows[e.RowIndex].Cells[e.ColumnIndex] is DataGridViewButtonCell)
     {
         if (dgv.Columns[e.ColumnIndex].DefaultCellStyle.NullValue.ToString() == "Modify")
         {
             using (ChoosingInfoModify cim = new ChoosingInfoModify()
             {
                 connection = connection,
                 year = dgv.Rows[e.RowIndex].Cells["Chosen Year"].Value.ToString(),
                 score = dgv.Rows[e.RowIndex].Cells["Score"].Value.ToString(),
                 student = string.Format("{0}({1})", dgv.Rows[e.RowIndex].Cells["Student ID"].Value, dgv.Rows[e.RowIndex].Cells["Student Name"].Value),
                 teacher = string.Format("{0}({1})", dgv.Rows[e.RowIndex].Cells["Teacher ID"].Value, dgv.Rows[e.RowIndex].Cells["Teacher Name"].Value),
                 course = string.Format("{0}({1})", dgv.Rows[e.RowIndex].Cells["Course ID"].Value, dgv.Rows[e.RowIndex].Cells["Course Name"].Value),
                 credit = dgv.Rows[e.RowIndex].Cells["Credit"].Value.ToString(),
                 role = Common.UserType.ADMIN
             })
             {
                 cim.ShowDialog();
                 choosing_clear_button.PerformClick();
                 choosing_query_button.PerformClick();
             }
         }
         else if (dgv.Columns[e.ColumnIndex].DefaultCellStyle.NullValue.ToString() == "Delete")
         {
             if (Common.ShowChoice("Delete Confirm", string.Format("Are you sure to delete the record ({0},{1},{2},{3})", dgv.Rows[e.RowIndex].Cells["Student Name"].Value, dgv.Rows[e.RowIndex].Cells["Course Name"].Value, dgv.Rows[e.RowIndex].Cells["Teacher Name"].Value, dgv.Rows[e.RowIndex].Cells["Chosen Year"].Value) + "?", MessageBoxIcon.Warning) == DialogResult.Yes)
             {
                 int delete_result = SQL_Help.ExecuteNonQuery("delete from course_choosing_info where (course_id=@course_id and teacher_id=@teacher_id and student_id=@student_id and chosen_year=@year);", connection, new MySqlParameter[]
                 {
                     new MySqlParameter("@course_id", MySqlDbType.VarChar)
                     {
                         Value = dgv.Rows[e.RowIndex].Cells["Course ID"].Value
                     },
                     new MySqlParameter("@teacher_id", MySqlDbType.VarChar)
                     {
                         Value = dgv.Rows[e.RowIndex].Cells["Teacher ID"].Value
                     },
                     new MySqlParameter("@student_id", MySqlDbType.VarChar)
                     {
                         Value = dgv.Rows[e.RowIndex].Cells["Student ID"].Value
                     },
                     new MySqlParameter("@year", MySqlDbType.Int32)
                     {
                         Value = dgv.Rows[e.RowIndex].Cells["Chosen Year"].Value
                     },
                 });
                 if (delete_result > 0)
                 {
                     Common.ShowInfo("Done", "Delete successfully!");
                     choosing_clear_button.PerformClick();
                     choosing_query_button.PerformClick();
                 }
             }
         }
     }
 }
        private void teacher_apply_button_Click(object sender, EventArgs e)
        {
            if (teacher_new_id_textBox.Text.Length == 0 || teacher_new_name_textBox.Text.Length == 0)
            {
                Common.ShowError("Format error!", "All the field should not be null! Please check again!");
                return;
            }
            if (!Regex.IsMatch(teacher_new_id_textBox.Text, @"^\d{5}$"))
            {
                Common.ShowError("Format checking error!", "ID format error! The length of teacher ID should be 5!");
                return;
            }
            if (teacher_new_name_textBox.TextLength == 0)
            {
                Common.ShowError("Format checking error!", "Name format error! Teacher name cannot be empty!");
                return;
            }
            MySqlParameter teacher_id_parameter = new MySqlParameter("@id", MySqlDbType.VarChar)
            {
                Value = teacher_current_id_textBox.Text
            };
            MySqlParameter teacher_new_id_parameter = new MySqlParameter("@new_id", MySqlDbType.VarChar)
            {
                Value = teacher_new_id_textBox.Text
            };
            int id_modify_result = SQL_Help.ExecuteNonQuery("update teacher_info set id=@new_id,name=@new_name where id=@id;", connection, new MySqlParameter[]
            {
                teacher_id_parameter,
                teacher_new_id_parameter,
                new MySqlParameter("@new_name", MySqlDbType.VarChar)
                {
                    Value = teacher_new_name_textBox.Text
                }
            });

            if (id_modify_result < 0)
            {
                return;
            }
            if (teacher_new_id_textBox.Text == teacher_current_id_textBox.Text)
            {
                Common.ShowInfo("Done!", "Modify successfully!");
                teacher_query_button.PerformClick();
                return;
            }
            int other_modify_result = SQL_Help.ExecuteNonQuery("update user_data set username=@new_id where username=@id;update course_info set teacher_id=@new_id where teacher_id=@id;", connection,
                                                               new MySqlParameter[] { teacher_new_id_parameter, teacher_id_parameter });

            if (other_modify_result >= 0)
            {
                Common.ShowInfo("Done!", "Modify successfully!");
                teacher_current_id_textBox.Text = teacher_new_id_textBox.Text;
                teacher_query_button.PerformClick();
            }
        }
 private void student_delete_button_Click(object sender, EventArgs e)
 {
     if (Common.ShowChoice("Delete Confirm", string.Format("Are you sure to delete the student ({0},{1})", student_current_id_textBox.Text, student_current_name_textBox.Text) + "?\nAll information about the student in the database will be deleted", MessageBoxIcon.Warning) == DialogResult.Yes)
     {
         int delete_result = SQL_Help.ExecuteNonQuery("delete from student_info where id=@id;delete from user_data where username=@id;", connection, new MySqlParameter[]
                                                      { new MySqlParameter("@id", MySqlDbType.VarChar)
                                                        {
                                                            Value = student_current_id_textBox.Text
                                                        } });
         if (delete_result > 0)
         {
             Common.ShowInfo("Done", "Delete successfully!");
             student_clear_button.PerformClick();
         }
     }
 }
        private void add_process()
        {
            int add_result;
            int year_lower_bound = Convert.ToInt32(grade_limit) - 1;
            int year_upper_bound = (cancel_limit == "") ? int.MaxValue : Convert.ToInt32(cancel_limit);

            for (int i = 0; i < dgv.Rows.Count; i++)
            {
                DataTable entry_year_dt = SQL_Help.ExecuteDataTable("select entrance_year from student_info where id=@id;", connection, new MySqlParameter[] { new MySqlParameter("@id", MySqlDbType.VarChar)
                                                                                                                                                               {
                                                                                                                                                                   Value = students[i].ToString().Substring(0, 10)
                                                                                                                                                               } });
                int  entry_year            = Convert.ToInt32(entry_year_dt.Rows[0][0]);
                bool lower_bound_satisfied = Convert.ToInt32(year) - entry_year >= year_lower_bound;
                bool upper_bound_satisfied = Convert.ToInt32(year) <= year_upper_bound;
                if (!lower_bound_satisfied || !upper_bound_satisfied)
                {
                    string error_msg = "Students: " + students[i] + ":";
                    error_msg += (lower_bound_satisfied ? "" : "\nThis course is only available for students whose grade is larger than " + grade_limit + ".")
                                 + (upper_bound_satisfied ? "" : "\nThis course is only available before " + cancel_limit + ".");
                    Common.ShowError("Time error!", error_msg);
                    add_result = -1;
                }
                else
                {
                    add_result = SQL_Help.ExecuteNonQuery("insert into course_choosing_info (student_id,teacher_id,course_id,chosen_year) values(@1,@2,@3,@4);", connection, new MySqlParameter[]
                                                          { new MySqlParameter("@1", MySqlDbType.VarChar)
                                                            {
                                                                Value = dgv.Rows[i].Cells["student"].Value.ToString().Substring(0, 10)
                                                            },
                                                            new MySqlParameter("@2", MySqlDbType.VarChar)
                                                            {
                                                                Value = dgv.Rows[i].Cells["teacher"].Value.ToString().Substring(0, 5)
                                                            },
                                                            new MySqlParameter("@3", MySqlDbType.VarChar)
                                                            {
                                                                Value = dgv.Rows[i].Cells["course"].Value.ToString().Substring(0, 7)
                                                            },
                                                            new MySqlParameter("@4", MySqlDbType.Int32)
                                                            {
                                                                Value = dgv.Rows[i].Cells["year"].Value.ToString()
                                                            } });
                }
                SetAddProgress(i, add_result > 0 ? "Done" : "Failed");
            }
        }
        private void apply_Click(object sender, EventArgs e)
        {
            DataTable dt = SQL_Help.ExecuteDataTable("select authority from user_data where username = @name and password = SHA1(@pwd)",
                                                     connection, new MySqlParameter[] { new MySqlParameter("@name", username), new MySqlParameter("@pwd", old_pwd.Text) });

            if (dt.Rows.Count == 0)
            {
                Common.ShowError("Password Changing Error", "Old Password is not correct!");
            }
            else
            {
                SQL_Help.ExecuteNonQuery("update user_data set password = SHA1(@pwd) where username = @name",
                                         connection, new MySqlParameter[] { new MySqlParameter("@name", username), new MySqlParameter("@pwd", new_pwd.Text) });
                Common.ShowInfo("Done!", "Password changing successful!");
                DialogResult = DialogResult.OK;
                Close();
            }
        }
        private void teacher_delete_button_Click(object sender, EventArgs e)
        {
            string delete_notice = ((teacher_courses_textBox.TextLength == 0) ? ""
                : "This teacher still have some course! \nIf continue, all the information about the courses that this teacher teach will be deleted!") +
                                   string.Format("Are you sure to delete teacher ({0},{1})?", teacher_current_id_textBox.Text, teacher_current_name_textBox.Text);

            if (Common.ShowChoice("Delete Confirm", delete_notice, MessageBoxIcon.Warning) == DialogResult.Yes)
            {
                MySqlParameter teacher_id_parameter = new MySqlParameter("@id", MySqlDbType.VarChar)
                {
                    Value = teacher_current_id_textBox.Text
                };
                if (SQL_Help.ExecuteNonQuery("delete from teacher_info where id=@id;delete from course_info where teacher_id=@id;delete from user_data where username=@id;",
                                             connection, new MySqlParameter[] { teacher_id_parameter }) > 0)
                {
                    Common.ShowInfo("Done", "Delete successfully!");
                    teacher_clear_button.PerformClick();
                }
            }
        }
Пример #8
0
 private void button1_Click(object sender, EventArgs e)
 {
     if (textBox1.Text.Length == 0)
     {
         Common.ShowError("Error!", "Username can not be empty!");
         return;
     }
     if (SQL_Help.ExecuteDataTable("select authority from user_data where username = @name;", connection, new MySqlParameter[] { new MySqlParameter("@name", textBox1.Text) }).Rows[0][0].ToString() == ((int)Common.UserType.ADMIN).ToString())
     {
         Common.ShowError("Failed!", "Operation denied: Administrator password can not be reset!\nIf you want to reset it, please contact the database administrator.");
         return;
     }
     if (Common.ShowChoice("Password Reset Confirm", "Password for user:"******" will be set to " + default_password + "\nAre you sure to continue?") == DialogResult.Yes)
     {
         if (SQL_Help.ExecuteNonQuery("update user_data set password=SHA1(@1) where username=@2;",
                                      connection, new MySqlParameter[] { new MySqlParameter("@1", default_password), new MySqlParameter("@2", textBox1.Text) }) > 0)
         {
             Common.ShowInfo("Done", "Reset Successful!");
         }
     }
 }
 private void course_delete_record_button_Click(object sender, EventArgs e)
 {
     if (Common.ShowChoice("Delete Confirm", string.Format("Are you sure to delete the course record ({0},{1},{2})", course_current_id_textBox.Text, course_current_name_textBox.Text, course_current_teacher_comboBox.Text) + "?", MessageBoxIcon.Warning) == DialogResult.Yes)
     {
         DeleteCourseFromOldTeacher(course_current_teacher_comboBox.Text.Substring(0, 5), course_current_id_textBox.Text);
         int delete_result = SQL_Help.ExecuteNonQuery("delete from course_info where (id=@id and teacher_id=@teacher_id);", connection, new MySqlParameter[] {
             new MySqlParameter("@id", MySqlDbType.VarChar)
             {
                 Value = course_current_id_textBox.Text
             },
             new MySqlParameter("@teacher_id", MySqlDbType.VarChar)
             {
                 Value = course_current_teacher_comboBox.Text.Substring(0, 5)
             },
         });
         if (delete_result > 0)
         {
             Common.ShowInfo("Done", "Delete successfully!");
             course_clear_button.PerformClick();
         }
     }
 }
 private void course_delete_button_Click(object sender, EventArgs e)
 {
     if (Common.ShowChoice("Delete Confirm", string.Format("Are you sure to delete the course ({0},{1})", course_current_id_textBox.Text, course_current_name_textBox.Text) + "?\nAll records about the course in the database will be deleted.", MessageBoxIcon.Warning) == DialogResult.Yes)
     {
         foreach (DataRow item in SQL_Help.ExecuteDataTable("select teacher_id from course_info where id=@id;", connection, new MySqlParameter[] { new MySqlParameter("@id", MySqlDbType.VarChar)
                                                                                                                                                   {
                                                                                                                                                       Value = course_current_id_textBox.Text
                                                                                                                                                   } }).Rows)
         {
             DeleteCourseFromOldTeacher(item[0].ToString(), course_current_id_textBox.Text);
         }
         int delete_result = SQL_Help.ExecuteNonQuery("delete from course_info where id=@id;", connection, new MySqlParameter[]
                                                      { new MySqlParameter("@id", MySqlDbType.VarChar)
                                                        {
                                                            Value = course_current_id_textBox.Text
                                                        } });
         if (delete_result > 0)
         {
             Common.ShowInfo("Done", "Delete successfully!");
             course_clear_button.PerformClick();
         }
     }
 }
 private void add_button_Click(object sender, EventArgs e)
 {
     if (student_radioButton.Checked)
     {
         if (id_textbox.Text.Length == 0 || name_textbox.Text.Length == 0 ||
             sex_comboBox.Text.Length == 0 || age_textbox.Text.Length == 0 ||
             year_textbox.Text.Length == 0 || class_textBox.Text.Length == 0)
         {
             Common.ShowError("Format error!", "All the field should not be null! Please check again!");
             return;
         }
         if (!Regex.IsMatch(id_textbox.Text, @"^\d{10}$"))
         {
             Common.ShowError("Format checking error!", "ID format error! The length of student ID should be 10!");
             return;
         }
         if (!Regex.IsMatch(age_textbox.Text, @"^\d{2}$") && int.Parse(age_textbox.Text) >= 10 && int.Parse(age_textbox.Text) <= 50)
         {
             Common.ShowError("Format checking error!", "Entrance age format error! It should between 10 and 50!");
             return;
         }
         if (!Regex.IsMatch(year_textbox.Text, @"^\d{4}$"))
         {
             Common.ShowError("Format error!", "Entrance year format error! \nPlease chech again!");
             return;
         }
         int add_result = SQL_Help.ExecuteNonQuery("insert into user_data (username,authority) values(@1,0);" +
                                                   "insert into student_info values(@1,@2,@3,@4,@5,@6);", connection, new MySqlParameter[]
                                                   { new MySqlParameter("@1", MySqlDbType.VarChar)
                                                     {
                                                         Value = id_textbox.Text
                                                     }, new MySqlParameter("@2", MySqlDbType.VarChar)
                                                     {
                                                         Value = name_textbox.Text
                                                     },
                                                     new MySqlParameter("@3", MySqlDbType.VarChar)
                                                     {
                                                         Value = sex_comboBox.Text
                                                     }, new MySqlParameter("@4", MySqlDbType.Int32)
                                                     {
                                                         Value = age_textbox.Text
                                                     },
                                                     new MySqlParameter("@5", MySqlDbType.Int32)
                                                     {
                                                         Value = year_textbox.Text
                                                     }, new MySqlParameter("@6", MySqlDbType.VarChar)
                                                     {
                                                         Value = class_textBox.Text
                                                     } });
         if (add_result >= 0)
         {
             Common.ShowInfo("Done", "Add successful!");
         }
     }
     else
     {
         if (id_textbox.Text.Length == 0 || name_textbox.Text.Length == 0)
         {
             Common.ShowError("Add error!", "All the field should not be null! Please check again!");
             return;
         }
         if (!Regex.IsMatch(id_textbox.Text, @"^\d{5}$"))
         {
             Common.ShowError("Format checking error!", "ID format error! The length of teacher ID should be 5!");
             return;
         }
         int add_result = SQL_Help.ExecuteNonQuery("insert into user_data (username,authority) values(@1,1);" +
                                                   "insert into teacher_info (id,name) values(@1,@2);", connection, new MySqlParameter[]
                                                   { new MySqlParameter("@1", MySqlDbType.VarChar)
                                                     {
                                                         Value = id_textbox.Text
                                                     }, new MySqlParameter("@2", MySqlDbType.VarChar)
                                                     {
                                                         Value = name_textbox.Text
                                                     } });
         if (add_result >= 0)
         {
             Common.ShowInfo("Done", "Add successful!");
         }
     }
 }
 private void batch_add_process()
 {
     for (int i = 0; i < dgv.Rows.Count; i++)
     {
         bool format_check = true;
         int  add_result;
         if (!Regex.IsMatch(dgv.Rows[i].Cells["id"].Value.ToString(), @"^\d{10}$"))
         {
             Common.ShowError("Format checking error!", "ID format error! The length of student ID should be 10!\nID: " + dgv.Rows[i].Cells["id"].Value);
             format_check = false;
         }
         if (!Regex.IsMatch(dgv.Rows[i].Cells["age"].Value.ToString(), @"^\d{2}$") && int.Parse(dgv.Rows[i].Cells["age"].Value.ToString()) >= 10 && int.Parse(dgv.Rows[i].Cells["age"].Value.ToString()) <= 50)
         {
             Common.ShowError("Format checking error!", "Entrance age format error! It should between 10 and 50!\nID: " + dgv.Rows[i].Cells["id"].Value);
             format_check = false;
         }
         if (dgv.Rows[i].Cells["sex"].Value.ToString() != "Male" && dgv.Rows[i].Cells["sex"].Value.ToString() != "Female")
         {
             Common.ShowError("Format checking error!", "Sex format error! It should be either \"Male\" or \"Female\"!\nID: " + dgv.Rows[i].Cells["id"].Value);
             format_check = false;
         }
         if (!Regex.IsMatch(dgv.Rows[i].Cells["year"].Value.ToString(), @"^\d{4}$"))
         {
             Common.ShowError("Format error!", "Entrance year format error! \nPlease chech again!");
             format_check = false;
         }
         if (format_check)
         {
             add_result = SQL_Help.ExecuteNonQuery("insert into user_data (username,authority) values(@1,0);" +
                                                   "insert into student_info values(@1,@2,@3,@4,@5,@6);", connection, new MySqlParameter[]
                                                   { new MySqlParameter("@1", MySqlDbType.VarChar)
                                                     {
                                                         Value = dgv.Rows[i].Cells["id"].Value
                                                     },
                                                     new MySqlParameter("@2", MySqlDbType.VarChar)
                                                     {
                                                         Value = dgv.Rows[i].Cells["name"].Value
                                                     },
                                                     new MySqlParameter("@3", MySqlDbType.VarChar)
                                                     {
                                                         Value = dgv.Rows[i].Cells["sex"].Value
                                                     },
                                                     new MySqlParameter("@4", MySqlDbType.Int32)
                                                     {
                                                         Value = dgv.Rows[i].Cells["age"].Value
                                                     },
                                                     new MySqlParameter("@5", MySqlDbType.Int32)
                                                     {
                                                         Value = dgv.Rows[i].Cells["year"].Value
                                                     },
                                                     new MySqlParameter("@6", MySqlDbType.VarChar)
                                                     {
                                                         Value = dgv.Rows[i].Cells["classname"].Value
                                                     } });
         }
         else
         {
             add_result = -1;
         }
         if (add_result > 0)
         {
             SetAddProgress(i, "Done");
         }
         else
         {
             SetAddProgress(i, "Failed");
         }
     }
 }
Пример #13
0
        private void apply_button_Click(object sender, EventArgs e)
        {
            if (choosing_new_year_textBox.Text.Length != 0 && !Regex.IsMatch(choosing_new_year_textBox.Text, @"^\d{4}$"))
            {
                Common.ShowError("Format error!", "Chosen year format error! \nPlease chech again!");
                return;
            }
            bool confirm = true;

            if (choosing_current_credit_textBox.Text != choosing_new_credit_textBox.Text)
            {
                confirm = Common.ShowChoice("Modify confirm", "The credits of the two courses are inconsistent! Continue?", MessageBoxIcon.Warning) == DialogResult.Yes;
            }
            if (confirm)
            {
                MySqlParameter score_parameter = new MySqlParameter("@score", MySqlDbType.Int32)
                {
                    Value = DBNull.Value
                };
                if (choosing_new_score_textBox.Text.Length != 0)
                {
                    if (!Regex.IsMatch(choosing_new_score_textBox.Text, @"^\d*$") && int.Parse(choosing_new_score_textBox.Text) >= 0 && int.Parse(choosing_new_score_textBox.Text) <= 100)
                    {
                        Common.ShowError("Score format error!", "Course score should be integer between 0 and 100! Please check again!");
                        return;
                    }
                    else
                    {
                        score_parameter.Value = choosing_new_score_textBox.Text;
                    }
                }
                int update_result = SQL_Help.ExecuteNonQuery("update course_choosing_info set teacher_id=@new_teacher_id,course_id=@new_course_id,chosen_year=@new_year,score=@score " +
                                                             "where (student_id=@student_id and teacher_id=@old_teacher_id and course_id=@old_course_id and chosen_year=@old_year);", connection, new MySqlParameter[]
                {
                    new MySqlParameter("@new_teacher_id", MySqlDbType.VarChar)
                    {
                        Value = choosing_new_teacher_comboBox.Text.Substring(0, 5)
                    },
                    new MySqlParameter("@new_course_id", MySqlDbType.VarChar)
                    {
                        Value = choosing_new_course_ComboBox.Text.Substring(0, 7)
                    },
                    new MySqlParameter("@new_year", MySqlDbType.Int32)
                    {
                        Value = choosing_new_year_textBox.Text
                    },
                    new MySqlParameter("@student_id", MySqlDbType.VarChar)
                    {
                        Value = choosing_new_id_textBox.Text.Substring(0, 10)
                    },
                    new MySqlParameter("@old_teacher_id", MySqlDbType.VarChar)
                    {
                        Value = choosing_current_teacher_textBox.Text.Substring(0, 5)
                    },
                    new MySqlParameter("@old_course_id", MySqlDbType.VarChar)
                    {
                        Value = choosing_current_course_textBox.Text.Substring(0, 7)
                    },
                    new MySqlParameter("@old_year", MySqlDbType.Int32)
                    {
                        Value = choosing_current_year_textBox.Text
                    },
                    score_parameter,
                });
                if (update_result > 0)
                {
                    Common.ShowInfo("Done!", "Modify successfully!");
                    Close();
                }
            }
        }
        private void student_apply_button_Click(object sender, EventArgs e)
        {
            if (student_new_id_textBox.Text.Length == 0 || student_new_name_textBox.Text.Length == 0 ||
                student_new_age_textBox.Text.Length == 0 ||
                student_new_year_textBox.Text.Length == 0 || student_new_class_comboBox.Text.Length == 0)
            {
                Common.ShowError("Format error!", "All the field should not be null! Please check again!");
                return;
            }
            if (!Regex.IsMatch(student_new_id_textBox.Text, @"^\d{10}$"))
            {
                Common.ShowError("Format checking error!", "ID format error! The length of student ID should be 10!");
                return;
            }
            if (!Regex.IsMatch(student_new_age_textBox.Text, @"^\d{2}$") && int.Parse(student_new_age_textBox.Text) >= 10 && int.Parse(student_new_age_textBox.Text) <= 50)
            {
                Common.ShowError("Format checking error!", "Entrance age format error! It should between 10 and 50!");
                return;
            }
            if (!Regex.IsMatch(student_new_year_textBox.Text, @"^\d{4}$"))
            {
                Common.ShowError("Format error!", "Entrance year format error! \nPlease chech again!");
                return;
            }
            int update_result = SQL_Help.ExecuteNonQuery("update student_info set id=@new_id,name=@new_name,sex=@new_sex,entrance_age=@new_age,entrance_year=@new_year,class=@new_class where id=@old_id;update user_data set username=@new_id where username=@old_id", connection, new MySqlParameter[]
            {
                new MySqlParameter("@new_id", MySqlDbType.VarChar)
                {
                    Value = student_new_id_textBox.Text
                },
                new MySqlParameter("@new_name", MySqlDbType.VarChar)
                {
                    Value = student_new_name_textBox.Text
                },
                new MySqlParameter("@new_age", MySqlDbType.Int32)
                {
                    Value = student_new_age_textBox.Text
                },
                new MySqlParameter("@new_sex", MySqlDbType.VarChar)
                {
                    Value = student_new_sex_comboBox.Text
                },
                new MySqlParameter("@new_year", MySqlDbType.Int32)
                {
                    Value = student_new_year_textBox.Text
                },
                new MySqlParameter("@new_class", MySqlDbType.VarChar)
                {
                    Value = student_new_class_comboBox.Text
                },
                new MySqlParameter("@old_id", MySqlDbType.VarChar)
                {
                    Value = student_current_id_textBox.Text
                }
            });

            if (update_result > 0)
            {
                Common.ShowInfo("Done!", "Modify successfully!");
                student_current_id_textBox.Text = student_new_id_textBox.Text;
                student_query_button.PerformClick();
            }
        }
        private void course_apply_button_Click(object sender, EventArgs e)
        {
            course_delete_record_button.Enabled = false;
            course_delete_button.Enabled        = false;
            if (course_new_id_textBox.Text.Length == 0 || course_new_name_textBox.Text.Length == 0 ||
                course_new_teacher_comboBox.Text.Length == 0 || course_new_credit_textBox.Text.Length == 0 ||
                course_new_grade_comboBox.Text.Length == 0)
            {
                Common.ShowError("Null Value Error", "Please ensure that all new fields except cancelled-year are not null!");
                return;
            }
            if (!Regex.IsMatch(course_new_id_textBox.Text, @"^\d{7}$"))
            {
                Common.ShowError("Format error!", "ID format error! \nThe length of course ID should be 7!");
                return;
            }
            if (!course_new_teacher_comboBox.Items.Contains(course_new_teacher_comboBox.Text))
            {
                Common.ShowError("Format error!", "Teacher ID format error! \nPlease select the correct item from the teacher combo list!");
                return;
            }
            if (!Regex.IsMatch(course_new_credit_textBox.Text, @"^(([1-9]{1}\d*)|([0]{1}))(\.(\d)?)?$"))
            {
                Common.ShowError("Format error!", "Credit format error! \nThe credit should be integer or one place decimal!");
                return;
            }
            if (course_new_year_textBox.Text.Length != 0 && !Regex.IsMatch(course_new_year_textBox.Text, @"^\d{4}$"))
            {
                Common.ShowError("Format error!", "Canceled year format error! \nPlease chech again!");
                return;
            }
            if (SQL_Help.ExecuteDataTable("select id from course_info where (not id=@old and id=@new);", connection, new MySqlParameter[]
            {
                new MySqlParameter("@old", MySqlDbType.VarChar)
                {
                    Value = course_current_id_textBox.Text
                },
                new MySqlParameter("@new", MySqlDbType.VarChar)
                {
                    Value = course_new_id_textBox.Text
                }
            }).Rows.Count != 0)
            {
                Common.ShowError("ID update error!", string.Format("Duplicate course ID for {0}! Please change to another one.", course_new_id_textBox.Text));
                return;
            }

            MySqlParameter year_parameter   = new MySqlParameter("@year", MySqlDbType.Int32);
            MySqlParameter new_id_parameter = new MySqlParameter("@id", MySqlDbType.VarChar)
            {
                Value = course_new_id_textBox.Text
            };

            if (!canceled_year_textbox_has_real_text)
            {
                year_parameter.Value = DBNull.Value;
            }
            else
            {
                year_parameter.Value = course_new_year_textBox.Text;
            }
            int apply_result_basic_info = SQL_Help.ExecuteNonQuery("update course_info set id=@id,name=@name,credit=@credit,grade_limit=@grade,canceled_year=@year where id=@old_id;", connection, new MySqlParameter[]
            {
                new_id_parameter,
                new MySqlParameter("@name", MySqlDbType.VarChar)
                {
                    Value = course_new_name_textBox.Text
                },
                new MySqlParameter("@credit", MySqlDbType.Double)
                {
                    Value = course_new_credit_textBox.Text
                },
                new MySqlParameter("@grade", MySqlDbType.Int32)
                {
                    Value = course_new_grade_comboBox.Text
                },
                year_parameter,
                new MySqlParameter("@old_id", MySqlDbType.VarChar)
                {
                    Value = course_current_id_textBox.Text
                },
            });

            if (apply_result_basic_info <= 0)
            {
                return;
            }
            int apply_result_teacher_info = SQL_Help.ExecuteNonQuery("update course_info set teacher_id=@teacher_id where (id=@id and teacher_id=@old_teacher_id);", connection, new MySqlParameter[]
            {
                new MySqlParameter("@teacher_id", MySqlDbType.VarChar)
                {
                    Value = course_new_teacher_comboBox.Text.Substring(0, 5)
                },
                new_id_parameter,
                new MySqlParameter("@old_teacher_id", MySqlDbType.VarChar)
                {
                    Value = course_current_teacher_comboBox.Text.Substring(0, 5)
                }
            });
            int delete_from_old_result = int.MaxValue, add_to_new_result = int.MaxValue;

            delete_from_old_result = DeleteCourseFromOldTeacher(course_current_teacher_comboBox.Text.Substring(0, 5), course_current_id_textBox.Text);
            add_to_new_result      = AddCourseToNewTeacher(course_new_teacher_comboBox.Text.Substring(0, 5), course_new_id_textBox.Text);
            foreach (DataRow item in SQL_Help.ExecuteDataTable("select teacher_id from course_info where id=@id;", connection, new MySqlParameter[] { new_id_parameter }).Rows)
            {
                if (item[0].ToString() == course_new_teacher_comboBox.Text.Substring(0, 5))
                {
                    continue;
                }
                DeleteCourseFromOldTeacher(item[0].ToString(), course_current_id_textBox.Text);
                AddCourseToNewTeacher(item[0].ToString(), course_new_id_textBox.Text);
            }
            if (apply_result_basic_info > 0 && apply_result_teacher_info > 0 && delete_from_old_result > 0 && add_to_new_result > 0)
            {
                Common.ShowInfo("Done!", "Modify successfully!");
                course_current_id_textBox.Text = course_new_id_textBox.Text;
                course_query_button.PerformClick();
            }
        }
Пример #16
0
        private void button1_Click(object sender, EventArgs e)
        {
            if (course_id_textBox.Text.Length == 0 || course_name_textBox.Text.Length == 0 ||
                teacher_id_ComboBox.Text.Length == 0 || credit_textBox.Text.Length == 0 ||
                grade_comboBox.Text.Length == 0)
            {
                Common.ShowError("Null Value Error", "Please ensure that the first five fields are not null!");
                return;
            }
            if (!Regex.IsMatch(course_id_textBox.Text, @"^\d{7}$"))
            {
                Common.ShowError("Format error!", "ID format error! \nThe length of course ID should be 7!");
                return;
            }
            if (!teacher_list.Contains(teacher_id_ComboBox.Text))
            {
                Common.ShowError("Format error!", "Teacher ID format error! \nPlease select the correct item from the teacher combo list!");
                return;
            }
            if (!Regex.IsMatch(credit_textBox.Text, @"^(([1-9]{1}\d*)|([0]{1}))(\.(\d)?)?$"))
            {
                Common.ShowError("Format error!", "Credit format error! \nThe credit should be integer or one place decimal!");
                return;
            }
            if (cancel_year_textBox.Text.Length != 0 && !Regex.IsMatch(cancel_year_textBox.Text, @"^\d{4}$"))
            {
                Common.ShowError("Format error!", "Canceled year format error! \nPlease chech again!");
                return;
            }
            string    teacher_current_courses;
            string    current_teacher_id = teacher_id_ComboBox.Text.Substring(0, 5);
            DataTable dt_tcc             = SQL_Help.ExecuteDataTable("select courses from teacher_info where id=@tid;", connection, new MySqlParameter[] { new MySqlParameter("@tid", current_teacher_id) });

            teacher_current_courses = dt_tcc.Rows[0][0].ToString();
            MySqlParameter year_parameter = new MySqlParameter("@year", MySqlDbType.Int32);

            if (cancel_year_textBox.Text.Length == 0)
            {
                year_parameter.Value = DBNull.Value;
            }
            else
            {
                year_parameter.Value = cancel_year_textBox.Text;
            }
            if (SQL_Help.ExecuteNonQuery
                    ("insert into course_info values (@id,@name,@teacher,@credit,@grade,@year); " +
                    "update teacher_info set courses = @new_course where id = @teacher;", connection, new MySqlParameter[]
                    { new MySqlParameter("@id", MySqlDbType.VarChar)
                      {
                          Value = course_id_textBox.Text
                      },
                      new MySqlParameter("@name", MySqlDbType.VarChar)
                      {
                          Value = course_name_textBox.Text
                      },
                      new MySqlParameter("@teacher", MySqlDbType.VarChar)
                      {
                          Value = current_teacher_id
                      },
                      new MySqlParameter("@credit", MySqlDbType.Double)
                      {
                          Value = credit_textBox.Text
                      },
                      new MySqlParameter("@grade", MySqlDbType.Int32)
                      {
                          Value = grade_comboBox.Text
                      },
                      year_parameter,
                      new MySqlParameter("@new_course", MySqlDbType.VarChar)
                      {
                          Value = teacher_current_courses + (teacher_current_courses.Length == 0?"":",") + course_id_textBox.Text
                      } }) > 0)
            {
                Common.ShowInfo("Done", "Add successful!");
                cancel_year_textBox.ReadOnly = false;
                course_name_textBox.ReadOnly = false;
                credit_textBox.ReadOnly      = false;
                grade_comboBox.Enabled       = true;
                course_name_textBox.Clear();
                credit_textBox.Clear();
                grade_comboBox.Text = "";
                cancel_year_textBox.Clear();
                course_id_textBox.Focus();
            }
        }