首先创建一个主页窗口,管理员登录后跳转至主页,这里用到的组件有:菜单组件和导航栏
1.新增功能实现:这里仍旧是通过点击事件实现页面跳转
FormInserStu.cs功能实现代码如下:
private void btnAdd_Click(object sender, EventArgs e)
{
string stuNo = txtStuNo.Text;
string stuName = txtStuName.Text;
string age = txtStuAge.Text;
string sex = cobStuSex.Text;
string grade = cobStuGrade.Text;
string zhuanye = txtStuZhuan.Text;
//新增sql语句
string sql = $"insert into dbo.tbl_student values('{stuNo}','{stuName}','{age}','{sex}','{grade}','{zhuanye}')";
if (DBHelper.ExecuteSql(sql))
{
//注册成功
MessageBox.Show("添加成功", "消息", MessageBoxButtons.OK, MessageBoxIcon.Information);
this.Hide();
}
else
{
//反之失败
MessageBox.Show("添加失败,请重新操作");
}
}
private void btnReturn_Click(object sender, EventArgs e)
{
this.Close();
}
2.学生信息列表展示、列表行信息选中展示功能实现如下:
学生信息列表展示实现过程,主要是设置select语句调用DBHelper的执行检查方法GetDataReader(),将数据表中数据全部加载至表格中,刷新功能也可通过调用LoadStu()方法来实现,实现如下:
private void LoadStu()
{
dgvStu.Rows.Clear();
//查找全部信息sql语句
string sql = "select * from dbo.tbl_student;";
SqlDataReader reader = DBHelper.GetDataReader(sql);
while (reader.Read())
{
dgvStu.Rows.Add(reader[0].ToString(), reader[1].ToString(), reader[2].ToString(),
reader[3].ToString(), reader[4].ToString(), reader[5].ToString());
}
reader.Close();
}
private void FormManage_Load(object sender, EventArgs e)
{
//将数据表中学生信息加载至表格中
LoadStu();
}
//刷新功能
private void btnUpdate_Click(object sender, EventArgs e)
{
LoadStu();
}
3.搜索功能:通过模糊查询实现,设置文本框名称为key,根据输入内容通过模糊查询语句查询数据表信息,实现如下:
private void btnSearch_Click(object sender, EventArgs e)
{
//获取关键字
string key = txtKeyNo.Text;
//根据关键字进行模糊查询
string sql = $"select * from dbo.tbl_student where stuNo like '{key}' or stuName like '{key}'";
//显示结果
SqlDataReader reader = DBHelper.GetDataReader(sql);
//清空表格
dgvStu.Rows.Clear();
//搜索结果再表格中显示
while (reader.Read())
{
dgvStu.Rows.Add(reader[0].ToString(), reader[1].ToString(), reader[2].ToString(),
reader[3].ToString(), reader[4].ToString(), reader[5].ToString());
}
reader.Close();
}
4.点击表格某列数据可以显示当前选中的数据,便于删除和编辑查看操作,实现如下:
private void dgvStu_CellClick(object sender, DataGridViewCellEventArgs e)
{
//当点击表格中数据便会触发事件
if (dgvStu.CurrentRow == null || dgvStu.CurrentRow.Cells[0].Value == null)
{
MessageBox.Show("选中了无效数据!");
return;
}
string id= dgvStu.CurrentRow.Cells[0].Value.ToString();//当前选中的学生编号
string name= dgvStu.CurrentRow.Cells[1].Value.ToString();//当前选中的学生姓名
lbNo.Text = id;
lbName.Text = name;
//用于编辑的字段赋值
sNo = dgvStu.CurrentRow.Cells[0].Value.ToString();
sName = dgvStu.CurrentRow.Cells[1].Value.ToString();
sAge = int.Parse(dgvStu.CurrentRow.Cells[2].Value.ToString());
sSex = dgvStu.CurrentRow.Cells[3].Value.ToString();
sGrade = dgvStu.CurrentRow.Cells[4].Value.ToString();
sZhuanye = dgvStu.CurrentRow.Cells[5].Value.ToString();
}
5.删除功能实现如下:
//删除功能
private void btnDel_Click(object sender, EventArgs e)
{
//获取当前选中的数据--lbName
string stuName = this.lbName.Text;
if (stuName == "NULL")
{
MessageBox.Show("未选中数据,请选择数据再进行操作!");
return;
}
//删除选中数据-sql语句
string sql = $"delete from dbo.tbl_student where stuName='{stuName}'";
/*SqlDataReader reader = DBHelper.GetDataReader(sql);*/
if (DBHelper.ExecuteSql(sql))
{
//删除后更新表格数据
lbName.Text = "NULL";
lbNo.Text = "NULL";
//选中表示变回空值
LoadStu();
}
else
{
MessageBox.Show("删除失败,请重新操作!");
}
}
6.编辑用户信息功能实现,选中某行数据,通过点击编辑按钮事件跳转到编辑窗口,进行编辑操作,在信息编辑完成后返回列表页并刷新表格,实现过程如下:
首先创建编辑FormEdit.cs类并设计窗口,为了实现编辑内容提交后关闭窗口并返回上级窗口,故定义一个委托,在上级窗口FormManage.cs(列表页)中调用该委托。
public partial class FormEdit : Form
{
public FormEdit()
{
InitializeComponent();
}
//实现编辑窗体关闭后返回至列表窗口--委托
//定义一个委托
public delegate void Save();
//定义时间
public event Save OnSave;
private void btnEdit_Click(object sender, EventArgs e)
{
string sql = $"update dbo.tbl_student set stuNo='{txtStuNo.Text}',stuName='{txtStuName.Text}',age='{txtStuAge.Text}',sex='{cobStuSex.Text}',grade='{cobStuGrade.Text}',zhuanye='{txtStuZhuan.Text}' where stuName='{FormManage.sName}'";
/* string sqlUpdate= "select * from dbo.tbl_student;";*/
if (DBHelper.ExecuteSql(sql))
{
/*this.Close();*/
MessageBox.Show("编辑成功!");
//编辑成功后返回列表页
/*FormEdit formEdit = new FormEdit(this);*/
/* this.Hide();*/
this.Close();
//关闭页面时执行上面定义的事件
OnSave();
}
else
{
MessageBox.Show("编辑失败,请重新操作!");
}
}
private void btnReturn_Click(object sender, EventArgs e)
{
this.Close();
/*if (TextBoxChanged != null)
{
TextBoxChanged(this, e);
}*/
}
private void txtStuName_TextChanged(object sender, EventArgs e)
{
}
private void FormEdit_Load(object sender, EventArgs e)
{
/*string stuNo = txtStuNo.Text;
string stuName = txtStuName.Text;
string stuAge = txtStuAge.Text;
string stuSex = cobStuSex.Text;
string stuGrade = cobStuGrade.Text;
string stuZhuan = txtStuZhuan.Text;*/
txtStuNo.Text = FormManage.sNo;
txtStuName.Text = FormManage.sName;
txtStuAge.Text = FormManage.sAge.ToString();
cobStuSex.Text = FormManage.sSex;
cobStuGrade.Text = FormManage.sGrade;
txtStuZhuan.Text = FormManage.sZhuanye;
}
}
在FormManage.cs中调用编辑功能定义的窗体页面:
private void btnEdit_Click(object sender, EventArgs e)
{
FormEdit formEdit = new FormEdit();
//订阅编辑功能中定义的事件
formEdit.OnSave += new FormEdit.Save(f_OnSave);
formEdit.ShowDialog();
/*this.Hide();*/
/*formEdit.TextBoxChanged+=new EventHandler(
(sender,e))*/
}
void f_OnSave()
{
/*btnEdit.Text = "New";*/
LoadStu();
}
综上,一个简单的基于c#的学生信息管理系统便实现了。