Advertisement
Guest User

Untitled

a guest
Dec 11th, 2018
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 4.76 KB | None | 0 0
  1. /*
  2. PROJECT C#
  3. */
  4. using System;
  5. using System.Collections.Generic;
  6. using System.Drawing;
  7. using System.Windows.Forms;
  8. using System.Data.SqlClient;
  9. using MySql.Data.MySqlClient;
  10.  
  11. namespace SQLFramework
  12. {
  13.     public partial class MainForm : Form
  14.     {
  15.         public MySqlConnection dbHandle = new MySqlConnection("server=localhost;user=root;database=sqlsharp;password=;");
  16.         public int SelectedID{get;set;}
  17.         public List<int> mark = new List<int>();
  18.         public MainForm()
  19.         {
  20.             InitializeComponent();
  21.             try{
  22.                 dbHandle.Open();
  23.             }catch(Exception e){
  24.                 MessageBox.Show(e.Message,"Error",MessageBoxButtons.OK);
  25.                 Environment.Exit(0);
  26.                 return;
  27.             }
  28.             InitializeProgram();
  29.         }
  30.         public void InitializeProgram(){
  31.             try{dbHandle.Open();}catch(Exception){}
  32.             studentsBox.Items.Clear();
  33.             MySqlCommand getCMD = new MySqlCommand("SELECT * FROM `students` ORDER BY `Id`",dbHandle);
  34.             int i = 1;
  35.             using(MySqlDataReader reader = getCMD.ExecuteReader()){
  36.                 while(reader.Read()){
  37.                     if(SelectedID == 0)SelectedID = reader.GetInt32("Id");
  38.                     string name = "["+i+"] "+reader.GetString("Name");i++;
  39.                     studentsBox.Items.Add(name);
  40.                 }
  41.                 reader.Close();
  42.             }
  43.             if(studentsBox.Items.Count > 0)studentsBox.SelectedIndex = 0;
  44.             UpdateMarks();
  45.             dbHandle.Close();
  46.         }
  47.         void MainFormLoad(object sender, EventArgs e)
  48.         {
  49.    
  50.         }
  51.         void StudentsBoxSelectedIndexChanged(object sender, EventArgs e)
  52.         {
  53.             SelectedID = studentsBox.SelectedIndex+1;
  54.             UpdateMarks();
  55.         }
  56.         void UpdateMarks(){
  57.             try{dbHandle.Open();}catch(Exception){}
  58.             MySqlCommand updCMD = new MySqlCommand("SELECT * FROM `students` WHERE `Id` = '"+SelectedID+"'",dbHandle);
  59.             using(MySqlDataReader reader = updCMD.ExecuteReader()){
  60.                 reader.Read();
  61.                 mark.Clear();
  62.                 if(false == reader.HasRows){
  63.                     markLabel.Text = "Ученик:\nНет данных\n\nОценки:\n\nНет данных";
  64.                 }else{
  65.                     markLabel.Text = "Ученик:\n"+reader.GetString("Name")+"\n\nОценки:\n\n";
  66.                     string marks = reader.GetString("Marks");
  67.                     if(string.IsNullOrWhiteSpace(marks)){
  68.                         markLabel.Text += "Оценок нет";
  69.                     }else{
  70.                         int i=0;
  71.                         int summ=0;
  72.                         foreach(char m in marks){
  73.                             mark.Add((int)Char.GetNumericValue(m));
  74.                             summ += (int)Char.GetNumericValue(m);
  75.                             if(++i < marks.Length)markLabel.Text += m+"; ";
  76.                             else markLabel.Text += m;
  77.                         }
  78.                         markLabel.Text += "\n\nСредний балл:\n\n";
  79.                         float middle = ((float)summ/(float)i);
  80.                        
  81.                         markLabel.Text += string.Format("{0:N1}",middle);
  82.                     }
  83.                 }
  84.                 reader.Close();
  85.             }
  86.             dbHandle.Close();
  87.         }
  88.         void NewStudentBoxTextChanged(object sender, EventArgs e)
  89.         {
  90.         }
  91.         void NewStudentButtonClick(object sender, EventArgs e)
  92.         {
  93.             if(newStudentBox.Text.Equals("Help")){
  94.                 MessageBox.Show("ClearTable - очистить таблицу учеников","Help",MessageBoxButtons.OK);
  95.                 newStudentBox.Text = string.Empty;
  96.                 return;
  97.             }
  98.             if(newStudentBox.Text.Equals("ClearTable")){
  99.                 try{dbHandle.Open();}catch(Exception){}
  100.                 MySqlCommand cmd = new MySqlCommand("TRUNCATE TABLE `students`",dbHandle);
  101.                 cmd.ExecuteNonQuery();
  102.                 MessageBox.Show("Таблица учеников очищена","Successful",MessageBoxButtons.OK);
  103.                 dbHandle.Close();
  104.                 InitializeProgram();
  105.                 newStudentBox.Text = string.Empty;
  106.                 return;
  107.             }
  108.             if(newStudentBox.Text.Length < 3){
  109.                 MessageBox.Show("Имя слишком короткое","Error",MessageBoxButtons.OK);
  110.                 newStudentBox.Text = string.Empty;
  111.                 return;
  112.             }
  113.             if(newStudentBox.Text.Length > 28){
  114.                 MessageBox.Show("Имя слишком длинное","Error",MessageBoxButtons.OK);
  115.                 newStudentBox.Text = string.Empty;
  116.                 return;
  117.             }
  118.             try{dbHandle.Open();}catch(Exception){}
  119.             string query = "INSERT INTO `students` (`Name`) VALUES ('"+newStudentBox.Text+"')";
  120.             MySqlCommand Ccmd = new MySqlCommand(query,dbHandle);
  121.             Ccmd.ExecuteNonQuery();
  122.             dbHandle.Close();
  123.             InitializeProgram();
  124.             newStudentBox.Text = string.Empty;
  125.         }
  126.         void MarkButtonClick(object sender, EventArgs e)
  127.         {
  128.             if(studentsBox.Items.Count <= 0){
  129.                 MessageBox.Show("Ученик не выбран","Error",MessageBoxButtons.OK);
  130.                 return;
  131.             }
  132.             string marks = string.Empty;
  133.             foreach(int x in mark)
  134.             {
  135.                 marks += x.ToString();
  136.             }
  137.             marks += markBox.Value.ToString();
  138.             try{dbHandle.Open();}catch(Exception){}
  139.             MySqlCommand cmd = new MySqlCommand("UPDATE `students` SET `Marks` = '"+marks+"' WHERE `Id` = '"+SelectedID+"'",dbHandle);
  140.             cmd.ExecuteNonQuery();
  141.             dbHandle.Close();
  142.             UpdateMarks();
  143.         }
  144.         void markAddChanged(object sender, EventArgs e)
  145.         {
  146.             markButton.Text = "Выставить оценку '"+markBox.Value.ToString()+"'";
  147.         }
  148.     }
  149. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement