C#实现简单学生信息管理系统
一、运行环境windows,使用vs编译软件
二、主要功能
登录、添加学生信息、修改学生信息、删除学生信息、查询学生信息
三、实现步骤
1、登陆界面功能实现
老规矩,先贴下主要代码:
//构造方法 public Login() { InitializeComponent(); this.label3.Parent = this; this.label1.BackColor = Color.Transparent; this.label2.BackColor = Color.Transparent; this.label3.BackColor = Color.Transparent; this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; } //对登录按钮的事件实现代码 private void button1_Click(object sender, EventArgs e) { string ss = ConfigurationManager.ConnectionStrings["Stu"].ToString(); SqlConnection conn = new SqlConnection(ss); try { //开启连接 conn.Open(); // MessageBox.Show("数据库连接成功!"); } catch (Exception) { //MessageBox.Show("数据库连接失败!"); } String uname = txtName.Text.Trim(); string pword = txtPass.Text.Trim(); if(uname == ""|| pword == "") { MessageBox.Show("请输入用户名或密码!"); return; } else { SqlCommand cmd = conn.CreateCommand(); SqlDataAdapter adp = new SqlDataAdapter(); string sql2 = "select * from account where name='"+ uname + " 'and pass='" + pword + " ' "; cmd.CommandText = sql2; adp.SelectCommand = cmd; DataSet dat = new DataSet(); adp.Fill(dat, "account"); if(dat.Tables["account"].Rows.Count == 0) { MessageBox.Show("用户名或密码错误!"); return; } else { Form1.isLogin = true; Form1.username = this.txtName.Text; this.Close(); } cmd.Clone(); } conn.Close(); } //实现按ESC键关闭该窗口 protected override bool ProcessCmdKey(ref System.Windows.Forms.Message msg, System.Windows.Forms.Keys keyData) { switch (keyData) { case Keys.Escape: this.Close();//esc关闭窗体 break; } return false; } //重置按钮清空文本框 private void button2_Click(object sender, EventArgs e) { txtName.Text = ""; txtPass.Text = ""; } //密码输入完成后实现敲击enter键触发登录按钮 private void txtPass_KeyDown(object sender, KeyEventArgs e) { if(e.KeyCode == Keys.Enter) { this.button1_Click(sender, e); } } //实现按enter键使焦点转移到下一文本框,与tab键通用 private void txtName_KeyPress(object sender, KeyPressEventArgs e) { if (e.KeyChar == (char)Keys.Enter) { SendKeys.Send("{tab}"); } }
效果如下图:
2、主界面功能实现
主要代码如下:
public static bool isLogin = false; int id; SqlConnection conn; SqlCommand cmd; SqlDataAdapter adp; DataSet dat; public static string username { get; set; } public Form1() { InitializeComponent(); this.label1.BackColor = Color.Transparent; this.groupBox1.BackColor = Color.Transparent; this.groupBox2.BackColor = Color.Transparent; this.dataGridView1.BorderStyle = BorderStyle.None; this.dataGridView1.CellBorderStyle = DataGridViewCellBorderStyle.None; this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; this.Text += "| 管理员:" + username; string ss = ConfigurationManager.ConnectionStrings["Stu"].ToString(); //建立数据库连接 conn = new SqlConnection(ss); try { //开启连接 conn.Open(); // MessageBox.Show("数据库连接成功!"); } catch (Exception) { MessageBox.Show("数据库连接失败!"); } } private void Form1_Load(object sender, EventArgs e) { DataGridViewDataLoad(); //this.stu_dentTableAdapter.Fill(this.students.Stu_dent); } private void DataGridViewDataLoad() { String sql1 = "select * from Stu_dent"; adp = new SqlDataAdapter(sql1,conn); dat = new DataSet(); adp.Fill(dat); dataGridView1.DataSource = dat.Tables[0]; } private void button5_Click(object sender, EventArgs e) { string num = textBox1.Text.Trim(); string name = textBox2.Text.Trim(); String sql4 = "Select * from Stu_dent where 1=1"; if(!String.IsNullOrEmpty(num)) { sql4 += " and StuNum=" + num; } if(!String.IsNullOrEmpty(name)) { sql4 += " and StuName like '%" + name + "%'"; } adp = new SqlDataAdapter(sql4, conn); dat = new DataSet(); adp.Fill(dat); dataGridView1.DataSource = dat.Tables[0]; } protected override bool ProcessCmdKey(ref System.Windows.Forms.Message msg, System.Windows.Forms.Keys keyData) { switch (keyData) { case Keys.Escape: this.Close();//esc关闭窗体 break; } return false; } private void button1_Click(object sender, EventArgs e) { AddStudent addStudent = new AddStudent(); addStudent.StartPosition = FormStartPosition.CenterScreen; //addStudent.Show(); addStudent.ShowDialog(); DataGridViewDataLoad(); } private void button4_Click(object sender, EventArgs e) { this.Close(); } private void button2_Click(object sender, EventArgs e) { MessageBox.Show("请在学生信息显示框中双击所要删除学生所在的那一行即可!!!","提示"); } private void button3_Click(object sender, EventArgs e) { MessageBox.Show("请在学生信息显示框中单击所要删修改学生所在的那一行的任意文字区域即可!", "提示"); } private void dataGridView1_CellDoubleClick(object sender, DataGridViewCellEventArgs e) { DialogResult result = MessageBox.Show("确定删除该学生信息?", "删除", MessageBoxButtons.OKCancel); if(result == DialogResult.OK) { id = Convert.ToInt32(dataGridView1.Rows[e.RowIndex].Cells[0].Value); Console.WriteLine(id); string sql2 = "delete from Stu_dent where ID=" + id; cmd = new SqlCommand(sql2, conn); cmd.ExecuteNonQuery(); } DataGridViewDataLoad(); } private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e) { id = Convert.ToInt32(this.dataGridView1.Rows[e.RowIndex].Cells[0].Value); UpdateStudent updatestudent = new UpdateStudent(id); updatestudent.StartPosition = FormStartPosition.CenterScreen; updatestudent.ShowDialog(); DataGridViewDataLoad(); }
效果如下:
3、添加学生信息功能实现
主要代码如下:
public AddStudent() { InitializeComponent(); this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; string ss = ConfigurationManager.ConnectionStrings["Stu"].ToString(); //建立数据库连接 conn = new SqlConnection(ss); try { //开启连接 conn.Open(); // MessageBox.Show("数据库连接成功!"); } catch (Exception) { MessageBox.Show("数据库连接失败!"); } } private void AddStudent_Load(object sender, EventArgs e) { } private void label1_Click(object sender, EventArgs e) { } protected override bool ProcessCmdKey(ref System.Windows.Forms.Message msg, System.Windows.Forms.Keys keyData) { switch (keyData) { case Keys.Escape: this.Close();//esc关闭窗体 break; } return false; } private void button1_Click(object sender, EventArgs e) { string StuNum = textBox1.Text.Trim(); string StuName = textBox2.Text.Trim(); int StuAge; Int32.TryParse(textBox3.Text.Trim(), out StuAge); string StuClass = textBox5.Text.Trim(); string StuPhone = textBox6.Text.Trim(); string StuSex = radioButton1.Checked ? "男" : "女"; if (String.IsNullOrEmpty(StuNum)) { MessageBox.Show("学号不能为空!"); } if (String.IsNullOrEmpty(StuName)) { MessageBox.Show("姓名不能为空!"); } if (String.IsNullOrEmpty(StuClass)) { MessageBox.Show("班级不能为空!"); } if (String.IsNullOrEmpty(StuPhone)) { MessageBox.Show("联系方式不能为空!"); } string sql = string.Format("insert into Stu_dent values ('{0}','{1}','{2}','{3}','{4}','{5}')", StuNum, StuName,StuAge,StuSex, StuClass, StuPhone ); cmd = new SqlCommand(sql, conn); int count = cmd.ExecuteNonQuery(); if (count > 0) { MessageBox.Show("添加成功!"); } else { MessageBox.Show("添加失败!"); } this.Close(); }
4、删除学生信息功能实现
在这里采用双击所要删除学生所在的那一行的任意位置即可
主要代码如下:
private void dataGridView1_CellDoubleClick(object sender, DataGridViewCellEventArgs e) { DialogResult result = MessageBox.Show("确定删除该学生信息?", "删除", MessageBoxButtons.OKCancel); if(result == DialogResult.OK) { id = Convert.ToInt32(dataGridView1.Rows[e.RowIndex].Cells[0].Value); Console.WriteLine(id); string sql2 = "delete from Stu_dent where ID=" + id; cmd = new SqlCommand(sql2, conn); cmd.ExecuteNonQuery(); } DataGridViewDataLoad(); }
效果如下图(双击第一行进行删除):
删除前:
删除后:
5、修改学生信息功能实现
在这里采用单击所要修改学生所在行任意文字处即可
主要代码如下:
public UpdateStudent(int id) { this.id = id; string ss = ConfigurationManager.ConnectionStrings["Stu"].ToString(); conn = new SqlConnection(ss); try { //开启连接 conn.Open(); // MessageBox.Show("数据库连接成功!"); } catch (Exception) { MessageBox.Show("数据库连接失败!"); } InitializeComponent(); this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; } protected override bool ProcessCmdKey(ref System.Windows.Forms.Message msg, System.Windows.Forms.Keys keyData) { switch (keyData) { case Keys.Escape: this.Close();//esc关闭窗体 break; } return false; } private void UpdateStudent_Load(object sender, EventArgs e) { cmd = conn.CreateCommand(); string sql1 = "select * from Stu_dent where ID=" + id; cmd.CommandText = sql1; reader = cmd.ExecuteReader(); if(reader.HasRows) { reader.Read(); textBox1.Text = reader.GetString(1); textBox2.Text = reader.GetString(2); textBox3.Text = reader.GetInt32(3).ToString(); if(reader.GetString(4) == "男") { this.radioButton2.Checked = true; } else { this.radioButton1.Checked = true; } textBox5.Text = reader.GetString(5); textBox6.Text = reader.GetString(6); } reader.Close(); } private void button1_Click(object sender, EventArgs e) { string StuNum = textBox1.Text.Trim(); string StuName = textBox2.Text.Trim(); int StuAge; Int32.TryParse(textBox3.Text.Trim(), out StuAge); string StuClass = textBox5.Text.Trim(); string StuPhone = textBox6.Text.Trim(); string StuSex = radioButton1.Checked ? "男" : "女"; if (String.IsNullOrEmpty(StuName)) { MessageBox.Show("姓名不能为空!"); } if (String.IsNullOrEmpty(StuClass)) { MessageBox.Show("班级不能为空!"); } if (String.IsNullOrEmpty(StuPhone)) { MessageBox.Show("联系方式不能为空!"); } string sql = string.Format("update Stu_dent set StuName='{0}',StuAge={1},StuSex='{2}',StuClass='{3}',StuPhone='{4}' where StuNum='{5}'", StuName, StuAge, StuSex, StuClass, StuPhone, StuNum); cmd = new SqlCommand(sql, conn); int count = cmd.ExecuteNonQuery(); if (count > 0) { MessageBox.Show("修改成功!"); } else { MessageBox.Show("修改失败!"); } this.Close(); } private void button2_Click(object sender, EventArgs e) { cmd = conn.CreateCommand(); string sql1 = "select * from Stu_dent where ID=" + id; cmd.CommandText = sql1; reader = cmd.ExecuteReader(); if (reader.HasRows) { reader.Read(); textBox1.Text = reader.GetString(1); textBox2.Text = reader.GetString(2); textBox3.Text = reader.GetInt32(3).ToString(); if (reader.GetString(4) == "男") { this.radioButton2.Checked = true; } else { this.radioButton1.Checked = true; } textBox5.Text = reader.GetString(5); textBox6.Text = reader.GetString(6); } reader.Close(); }
(在这里将郭某某的专业班级为例)
修改前:
修改后:
6、查询学生信息功能实现
查询功能就写了两种查询方式
主要代码如下:
private void button5_Click(object sender, EventArgs e) { string num = textBox1.Text.Trim(); string name = textBox2.Text.Trim(); String sql4 = "Select * from Stu_dent where 1=1"; if(!String.IsNullOrEmpty(num)) { sql4 += " and StuNum=" + num; } if(!String.IsNullOrEmpty(name)) { sql4 += " and StuName like '%" + name + "%'"; } adp = new SqlDataAdapter(sql4, conn); dat = new DataSet(); adp.Fill(dat); dataGridView1.DataSource = dat.Tables[0]; }
效果如下:
按学号查询:
按姓名查询:
总结:这是上完c#课后,自己无聊整着玩的,功能实现简单易懂,比较容易,希望能对你的学习有所帮助。对了,每个窗体的背景图片是我再网上随便找的,你可以选择你喜欢的背景。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
栏 目:C#教程
下一篇:C#利用PrintDocument定制打印单据的小例子
本文标题:C#实现简单学生信息管理系统
本文地址:https://www.xiuzhanwang.com/a1/C_jiaocheng/4747.html
您可能感兴趣的文章
- 01-10C#实现txt定位指定行完整实例
- 01-10WinForm实现仿视频播放器左下角滚动新闻效果的方法
- 01-10C#实现清空回收站的方法
- 01-10C#实现读取注册表监控当前操作系统已安装软件变化的方法
- 01-10C#实现多线程下载文件的方法
- 01-10C#实现Winform中打开网页页面的方法
- 01-10C#实现远程关闭计算机或重启计算机的方法
- 01-10C#自定义签名章实现方法
- 01-10C#文件断点续传实现方法
- 01-10winform实现创建最前端窗体的方法
阅读排行
本栏相关
- 01-10C#通过反射获取当前工程中所有窗体并
- 01-10关于ASP网页无法打开的解决方案
- 01-10WinForm限制窗体不能移到屏幕外的方法
- 01-10WinForm绘制圆角的方法
- 01-10C#实现txt定位指定行完整实例
- 01-10WinForm实现仿视频播放器左下角滚动新
- 01-10C#停止线程的方法
- 01-10C#实现清空回收站的方法
- 01-10C#通过重写Panel改变边框颜色与宽度的
- 01-10C#实现读取注册表监控当前操作系统已
随机阅读
- 01-11Mac OSX 打开原生自带读写NTFS功能(图文
- 01-10C#中split用法实例总结
- 01-10使用C语言求解扑克牌的顺子及n个骰子
- 01-10delphi制作wav文件的方法
- 08-05织梦dedecms什么时候用栏目交叉功能?
- 01-10SublimeText编译C开发环境设置
- 01-11ajax实现页面的局部加载
- 08-05dedecms(织梦)副栏目数量限制代码修改
- 04-02jquery与jsp,用jquery
- 08-05DEDE织梦data目录下的sessions文件夹有什