这篇文章将为大家详细讲解有关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#是一个简单、通用、面向对象的编程语言,它由微软Microsoft开发,继承了C和C++强大功能,并且去掉了一些它们的复杂特性,C#综合了VB简单的可视化操作和C++的高运行效率,以其强大的操作能力、优雅的语法风格、创新的语言特性和便捷的面向组件编程从而成为.NET开发的首选语言,但它不适用于编写时间急迫或性能非常高的代码,因为C#缺乏性能极高的应用程序所需要的关键功能。
关于“C#怎么实现简单学生信息管理系统”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。