c#学生信息管理系统

         

                                          图1.系统结构图    



  c#学生信息管理系统_第1张图片

                                                   图2.登录注册界面         

                                                                                                                               

c#学生信息管理系统_第2张图片          

图3.学生主界面


   c#学生信息管理系统_第3张图片

4.教师登分主界面


c#学生信息管理系统_第4张图片                     

                                    图5.成绩查询界面


    c#学生信息管理系统_第5张图片

                      图6.个人信息界面


步骤1:在设计管理系统之前,要先确定系统的结构图,以及确定系统所需要完成的功能。在该系统中分为登录/注册、学生主界面、成绩查询、个人信息、教师登分。

步骤2:在确定好系统的结构功能后就要设计系统的图形界面。利用C#的界面设计出如图2、3、4、5、6的界面。

步骤3:进行每个界面的功能设计

1)登录/注册界面

1.利用mysql建立用户密码表stu,tea

c#学生信息管理系统_第6张图片                                                                 c#学生信息管理系统_第7张图片

图1-1 学生用户密码表                                                                    图1-2教师用户密码表

2.设置登录按钮事件   需要注意此处要把登录界面获得的参数传递给学生主界面,利用构造函数传递参数(如蓝色地方标示)

 private void button1_Click(object sender, EventArgs e)
        {    


            string s = RadioButtonState;
            string strConnect = "data source =localhost;uid=root;pwd=root;database=zsl42";
            MySqlConnection comm = new MySqlConnection(strConnect);
            MySqlCommand comand = new MySqlCommand("", comm);
            switch (s)
            {
                case "学生":   //使用command.Parameter 参数传递的方式验证数据库中是否有对应的用户名和密码
                    
                    comand.CommandText = "select urid,pwd from stu where urid=@name and pwd=@password";
                    comand.Parameters.Add("name", MySqlDbType.VarChar);
                    comand.Parameters.Add("password", MySqlDbType.VarChar);
                    comand.Parameters["name"].Value = textBox1.Text.Trim();
                    comand.Parameters["password"].Value = textBox3.Text.Trim();
                    try
                    {
                        if (comm.State == ConnectionState.Closed)
                        {
                            comm.Open();


                        }
                        MySqlDataReader result = comand.ExecuteReader();
                        if (result.Read() == true)      //检测DataReader是否有特定用户名和密码的记录,若有则实例化学生界面
                        {
                            Form3 f3 = new Form3(textBox1.Text.ToString());
                            f3.Show();
                            this.Hide();



                        }
                        else
                        {
                            MessageBox.Show("用户名或密码错误");
                        }
                    }
                    catch
                    {
                        MessageBox.Show("用户名或密码错误");
                    }
                    finally
                    {
                        if (comm.State == ConnectionState.Open)
                        {
                            comm.Close();
                        }
                    }
                   
                    break;


                case "教师":
                    
                    comand.CommandText = "select urid,pwd from tea where urid=@name and pwd=@password";
                    comand.Parameters.Add("name", MySqlDbType.VarChar);
                    comand.Parameters.Add("password", MySqlDbType.VarChar);
                    comand.Parameters["name"].Value = textBox1.Text.Trim();
                    comand.Parameters["password"].Value = textBox3.Text.Trim();
                    try
                    {
                        if (comm.State == ConnectionState.Closed)
                        {
                            comm.Open();


                        }
                        MySqlDataReader result = comand.ExecuteReader();
                        if (result.Read() == true)
                        {
                            Form5 f5 = new Form5();
                            f5.Show();
                            this.Hide();


                        }
                        else
                        {
                            MessageBox.Show("用户名或密码错误");
                        }
                    }
                    catch
                    {
                        MessageBox.Show("用户名或密码错误");
                    }
                    finally
                    {
                        if (comm.State == ConnectionState.Open)
                        {
                            comm.Close();
                        }
                    }
                   
                    break;


                case "管理员":
                    break;


            }
           
          
        }

2)学生界面的设计

对于登录界面和主界面间的切换,查过一些书和百度过,都是利用登录界面隐藏(.Hide()),主界面实例化显示(new Form();.Show())来实现的,我没想到更好的方法。这里的窗体获得登录界面的参数,注意蓝色标示

 public Form3(string num)
        {
            InitializeComponent();
            label1.Text = num;
        }


        private void 成绩查询ToolStripMenuItem_Click(object sender, EventArgs e) //f3和f2、f4间的参数传递,把学号传递给f2、f4
        {
            Form4 f4 = new Form4(label1.Text.ToString());
            f4.Show();

        }


        private void 个人信息ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Form2 f2 = new Form2(label1.Text.ToString());
            f2.Show();

        }

3)成绩查询   把datagridview和dataset绑定在一起

建立成绩表stuscore

c#学生信息管理系统_第8张图片

public Form4(string num4)
        {
            InitializeComponent();
            label2.Text = num4;
            
            string filterstr = "select * from stuscore where 学号='" + label2.Text.ToString()+"'";
             string strconn = "data source =localhost;uid=root;pwd=root;database=zsl42";
            MySqlConnection comm = new MySqlConnection(strconn);
            comm.Open();
            MySqlDataAdapter da = new MySqlDataAdapter(filterstr,comm);
            DataSet ds = new DataSet();
            da.Fill(ds,"stuscore");
            dataGridView1.DataSource = ds.Tables[0];//把DataSet 与dataGridView的数据源绑定在一起

            comm.Close();
        }

4)个人信息

建立个人信息表stumessage

c#学生信息管理系统_第9张图片

 public Form2(string num2)
        {
            InitializeComponent();
            label2.Text = num2;
            string strconn = "data source =localhost;uid=root;pwd=root;database=zsl42";
            MySqlConnection comm = new MySqlConnection(strconn);
            string strcom = "select * from stumessage where urid="+label2.Text;
            MySqlCommand mycom = new MySqlCommand(strcom, comm);
            comm.Open();
          dr = mycom.ExecuteReader();  //用DataReader 读取特定学号的个人信息
          if (dr.Read()) {
              label4.Text = dr.GetString(1).ToString();
              label6.Text = dr.GetString(2).ToString();
              label8.Text = dr.GetString(3).ToString();
              label10.Text = dr.GetString(4).ToString();
          };
         
          comm.Close();
           
        }

5)教师登分    这部分是设计重点,这里花了我不少时间,利用DataAdapter.Update 来把datagridview 修改过的数据更新到数据库,实现了界面和数据库的交互

 public Form5()
        {
            InitializeComponent();
           
        }


        private Boolean isUpdate = false;
        MySqlConnection comm ;
        MySqlDataAdapter da =new MySqlDataAdapter();
        DataSet ds = new DataSet();
        private void button1_Click(object sender, EventArgs e)
        {
           DataTable dtShow = new DataTable();
            dtShow = (DataTable)dataGridView1.DataSource;
            MySqlCommandBuilder sqlbuid = new MySqlCommandBuilder(da);
            //comm.Open();
           
            if (isUpdate) //当检测到datagridview更新时,DataAdpater更新数据库,注意表必须有主键否则会报错
            {
               
                da.Update(ds.Tables[0]); isUpdate = false;
                
            }
           // comm.Close();
        }


        private void button2_Click(object sender, EventArgs e)
        {
            //string filterstr = "select urid,mark from score2 where course='" + textBox1.Text.ToString() + "'";
            string filterstr = "select 学号,姓名 ,"+textBox1.Text.ToString()+" from stuscore ";
            string strconn = "data source =localhost;uid=root;pwd=root;database=zsl42";
            comm = new MySqlConnection(strconn);
            MySqlCommand mycomand = new MySqlCommand(filterstr,comm);
            da.SelectCommand=mycomand;
          
           // comm.Open();
           
            da.Fill(ds, "stuscore");//DataAdapter填充数据集DataSet
            //DataTable dtShow = new DataTable();
           
            dataGridView1.DataSource = ds.Tables[0];//datagridview绑定数据源

           // comm.Close();
        }


        private void dataGridView1_CellValueChanged(object sender, DataGridViewCellEventArgs e)
        {
            isUpdate = true;//当datagridview内容改变时,isUpdate=ture
        }



这是我第一篇博客,最近在学C#,新手代码写得比较乱,而且功能不完善,请大家多多指教

你可能感兴趣的:(c#学生信息管理系统)