iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C#开发Winform实现学生管理系统
  • 794
分享到

C#开发Winform实现学生管理系统

2024-04-02 19:04:59 794人浏览 安东尼
摘要

一、案例功能的实现 数据: --专业 create table ProfessionInfo ( ProfessionID int primary key identity(1,1

一、案例功能的实现

数据:

--专业
create table ProfessionInfo
(
	ProfessionID int primary key identity(1,1), --专业编号
	professionName varchar(50) not null unique --专业名称
)
--学生
create table StudentInfo
(
	StuID varchar(20) primary key,  --学生学号
	StuName varchar(50) not null,		--学生姓名
	StuAge int not null check(StuAge > 0 and StuAge < 130), --学生年龄
	StuSex char(2) not null check(StuSex in('男','女')),  --学生性别
	StuHobby nvarchar(100), --爱好
	ProfessionID int not null references ProfessionInfo(ProfessionID), --所属专业编号
)
--添加专业信息
insert into ProfessionInfo(professionName) values('电子竞技')
insert into ProfessionInfo(professionName) values('软件开发')
insert into ProfessionInfo(professionName) values('医疗护理')
--插入学生信息
insert into StudentInfo(StuID,StuName,StuAge,StuSex,StuHobby,ProfessionID)
values('001','刘备',18,'男','',1)
insert into StudentInfo(StuID,StuName,StuAge,StuSex,StuHobby,ProfessionID)
values('002','关羽',20,'男','',2)
insert into StudentInfo(StuID,StuName,StuAge,StuSex,StuHobby,ProfessionID)
values('003','张飞',19,'男','',2)
insert into StudentInfo(StuID,StuName,StuAge,StuSex,StuHobby,ProfessionID)
values('004','孙尚香',17,'女','',3)

业务需求:

(1)专业下拉框绑定专业表数据,网格控件绑定学生数据,并且点击"搜索"按钮可以多条件组合查询。

(2)选中某一行,右键可以弹出"删除"菜单,点击"删除"菜单可以删除学生数据。

(3)点击"新增"按钮,弹出新增窗体,在此窗体中完成学生的新增操作。

(4)选中某一行,点击"编辑"按钮,弹出编辑窗体,在此窗体中完成数据的修改。

备注:其中性别的单选框,以及爱好的多选框分别用两个Pannel容器包含。

实现代码:

(1)查询窗体绑定专业信息、绑定学生信息以及搜索功能代码:

#region 绑定专业信息到下拉框
private void BindProfession()
{
    DataTable dt = new DataTable();
    DBHelper.Preparesql("select * from ProfessionInfo");
    dt = DBHelper.ExecQuery();
    DataRow dr = dt.NewRow();
    dr["ProfessionID"] = 0;
    dr["professionName"] = "--请选择--";
    dt.Rows.InsertAt(dr, 0);
    this.cmbPro.DataSource = dt;
    this.cmbPro.DisplayMember = "professionName";
    this.cmbPro.ValueMember = "ProfessionID";
}
#endregion

#region 绑定学生数据
private void BindData()
{
    string sql = "select * from StudentInfo inner join ProfessionInfo on StudentInfo.ProfessionID=ProfessionInfo.ProfessionID  where 1 = 1 ";
    if(!this.cmbPro.SelectedValue.ToString().Equals("0"))
        sql += " and StudentInfo.ProfessionID = " + this.cmbPro.SelectedValue.ToString();
    if(!this.txtName.Text.Equals(""))
        sql += " and StuName like '%" + this.txtName.Text + "%'";
    this.dataGridView1.AutoGenerateColumns = false;
    DBHelper.PrepareSql(sql);
    this.dataGridView1.DataSource = DBHelper.ExecQuery();
}
#endregion

private void FORM1_Load(object sender, EventArgs e)
{
    BindProfession();
    BindData();
}

private void btSearch_Click(object sender, EventArgs e)
{
	BindData();
}

(2)删除菜单代码:

private void 删除ToolStripMenuItem_Click(object sender, EventArgs e)
{
    //添加是否确定删除的对话框
    DialogResult result = MessageBox.Show("确定要删除数据吗,删除之后无法恢复!", "提示框",
        MessageBoxButtons.OKCancel, MessageBoxIcon.Question);
    if (result == DialogResult.Cancel)
        return;
    string stuid = this.dataGridView1.SelectedRows[0].Cells[0].Value.ToString();
    string sql = "delete from StudentInfo where StuID = @StuID";
    DBHelper.PrepareSql(sql);
    DBHelper.SetParameter("StuID", stuid);
    int rowCount = DBHelper.ExecNonQuery();
    if (rowCount == 1)
        MessageBox.Show("删除成功!");
    else
        MessageBox.Show("删除失败!");
    BindData();
}

(3)添加学生信息窗体代码:

#region 绑定专业信息到下拉框
private void BindProfession()
{
    DataTable dt = new DataTable();
    DBHelper.PrepareSql("select * from ProfessionInfo");
    dt = DBHelper.ExecQuery();
    DataRow dr = dt.NewRow();
    dr["ProfessionID"] = 0;
    dr["professionName"] = "--请选择--";
    dt.Rows.InsertAt(dr, 0);
    this.cmbPro.DataSource = dt;
    this.cmbPro.DisplayMember = "professionName";
    this.cmbPro.ValueMember = "ProfessionID";
}
#endregion
private void FrmAdd_Load(object sender, EventArgs e)
{
    BindProfession();
}

private void btAdd_Click(object sender, EventArgs e)
{
    string sql = "insert into StudentInfo(StuID,StuName,StuAge,StuSex,StuHobby,ProfessionID) values(@StuID,@StuName,@StuAge,@StuSex,@StuHobby,@ProfessionID)";
    DBHelper.PrepareSql(sql);
    DBHelper.SetParameter("StuID", this.txtId.Text);
    DBHelper.SetParameter("StuName",this.txtName.Text);
    DBHelper.SetParameter("StuAge",this.txtAge.Text);
    //性别处理
    string sex = "";
    if (this.rbBoy.Checked == true) sex = this.rbBoy.Text;
    if (this.rbGirl.Checked == true) sex = this.rbGirl.Text;
    DBHelper.SetParameter("StuSex", sex);
    //爱好处理
    string hobby = "";
    foreach (CheckBox ck in this.panel2.Controls)
    {
        if (ck.Checked == true)
        {
            if (!hobby.Equals(""))
                hobby += ",";
            hobby += ck.Text;
        }
    }
    DBHelper.SetParameter("StuHobby", hobby);
    DBHelper.SetParameter("ProfessionID",this.cmbPro.SelectedValue.ToString());
    int rowCount = DBHelper.ExecNonQuery();
    if (rowCount == 1)
    {
        MessageBox.Show("新增成功!");
        this.Close();
    }
    else
    {
        MessageBox.Show("新增失败!");
    }
}

(4)编辑学生信息窗体代码:

public string StuID { get; set; } //学生编号
#region 绑定专业信息到下拉框
private void BindProfession()
{
    DataTable dt = new DataTable();
    DBHelper.PrepareSql("select * from ProfessionInfo");
    dt = DBHelper.ExecQuery();
    DataRow dr = dt.NewRow();
    dr["ProfessionID"] = 0;
    dr["professionName"] = "--请选择--";
    dt.Rows.InsertAt(dr, 0);
    this.cmbPro.DataSource = dt;
    this.cmbPro.DisplayMember = "professionName";
    this.cmbPro.ValueMember = "ProfessionID";
}
#endregion
private void BindDetail()
{
    string sql = "select * from StudentInfo where StuID = " + this.StuID;
    DBHelper.PrepareSql(sql);
    DataTable dt = new DataTable();
    dt = DBHelper.ExecQuery();
    this.txtId.Text = dt.Rows[0]["StuID"].ToString();
    this.txtName.Text = dt.Rows[0]["StuName"].ToString();
    this.txtAge.Text = dt.Rows[0]["StuAge"].ToString();
    this.cmbPro.SelectedValue = dt.Rows[0]["ProfessionID"].ToString();
    //性别处理
    if (dt.Rows[0]["StuSex"].ToString().Equals("男"))
        this.rbBoy.Checked = true;
    else
        this.rbGirl.Checked = true;
    //爱好处理
    string[] arrHobby = dt.Rows[0]["StuHobby"].ToString().Split(',');
    foreach (string hobby in arrHobby)
    {
        foreach (CheckBox ck in this.panel2.Controls)
        {
            if (ck.Text.Equals(hobby))
                ck.Checked = true;
        }
    }

}
private void FrmEdit_Load(object sender, EventArgs e)
{
    BindProfession();
    BindDetail();
}

private void btUpdate_Click(object sender, EventArgs e)
{
    string sql = "update StudentInfo set StuName=@StuName,StuAge=@StuAge,StuSex=@StuSex,StuHobby=@StuHobby,ProfessionID=@ProfessionID where StuID=@StuID";
    DBHelper.PrepareSql(sql);
    DBHelper.SetParameter("StuName", this.txtName.Text);
    DBHelper.SetParameter("StuAge", this.txtAge.Text);
    //性别处理
    string sex = "";
    if (this.rbBoy.Checked == true) sex = this.rbBoy.Text;
    if (this.rbGirl.Checked == true) sex = this.rbGirl.Text;
    DBHelper.SetParameter("StuSex", sex);
    //爱好处理
    string hobby = "";
    foreach (CheckBox ck in this.panel2.Controls)
    {
        if (ck.Checked == true)
        {
            if (!hobby.Equals(""))
                hobby += ",";
            hobby += ck.Text;
        }
    }
    DBHelper.SetParameter("StuHobby", hobby);
    DBHelper.SetParameter("ProfessionID", this.cmbPro.SelectedValue.ToString());
    DBHelper.SetParameter("StuID", this.StuID);
    int rowCount = DBHelper.ExecNonQuery();
    if (rowCount == 1)
    {
        MessageBox.Show("修改成功!");
        this.Close();
    }
    else
    {
        MessageBox.Show("修改失败!");
    }
}

(5)查询窗体中"新增"和"编辑"按钮代码:

private void btAdd_Click(object sender, EventArgs e)
{
    FrmAdd frm = new FrmAdd();
    //frm.Owner = this;
    frm.Show();
}
private void btEdit_Click(object sender, EventArgs e)
{
    string stuid = this.dataGridView1.SelectedRows[0].Cells[0].Value.ToString();
    FrmEdit frm = new FrmEdit();
    frm.StuID = stuid;
    frm.Show();
}

二、补充:连接字符串配置

数据库连接字符串直接写在C#代码中,如果连接字符串需要发生改变,必须在C#代码中修改,并且重新进行编译的操作,给软件实施带来了麻烦。

解决此问题,可以将数据库连接字符串存放在配置文件中。

(1)在项目中找到App.config文件,如果没有此文件可以添加一个应用程序配置文件,在此配置文件的configuration节点内部添加如下配置:

<connectionStrings>
	<add name="DefaultConn" connectionString="server=.;database=DBTEST;uid=sa;pwd=123456;"/>
</connectionStrings>

(2)给项目添加引用"System.Configuration",并且将C#中连接字符串的赋值修改如下:

public static string connStr = ConfigurationManager.ConnectionStrings["DefaultConn"].ConnectionString;

到此这篇关于C#开发winform实现学生管理系统的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持编程网。

--结束END--

本文标题: C#开发Winform实现学生管理系统

本文链接: https://www.lsjlt.com/news/147863.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • C#开发Winform实现学生管理系统
    一、案例功能的实现 数据: --专业 create table ProfessionInfo ( ProfessionID int primary key identity(1,1...
    99+
    2024-04-02
  • C#怎么开发Winform实现学生管理系统
    这篇文章主要介绍“C#怎么开发Winform实现学生管理系统”,在日常操作中,相信很多人在C#怎么开发Winform实现学生管理系统问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C#怎么开发Winform实现...
    99+
    2023-06-30
  • C语言实现学生信息管理系统开发
    本文实例为大家分享了C语言实现学生信息管理系统的具体代码,供大家参考,具体内容如下 程序介绍 运行程序时,首先进入到菜单部分,菜单部分提供了菜单显示和输入功能部分。其运行效果如图所示...
    99+
    2022-11-13
    C语言学生信息系统 C语言学生管理系统 C语言信息管理系统
  • C#实现学生管理系统
    本文实例为大家分享了C#实现学生管理系统的具体代码,供大家参考,具体内容如下 添加3个类,分别实现 IComparer接口,实现对Student类的三个字段的排序。 1、学生类:学号...
    99+
    2022-11-13
    C#学生管理系统 C#学生系统 C#学生管理
  • C++实现学生住宿管理系统
    本文实例为大家分享了C++实现学生住宿管理系统的具体代码,供大家参考,具体内容如下 功能 (1)学生信息包括:姓名、学号、年龄、性别、学院、年级等 (2)宿舍信息包括:宿舍编号、宿舍...
    99+
    2024-04-02
  • C++实现学生档案管理系统
    本文实例为大家分享了C++实现学生档案管理系统的具体代码,供大家参考,具体内容如下 课题描述: 1.为学生档案管理人员编写一个学生档案管理系统 ,用菜单选择方式完成下列功能: 2.学...
    99+
    2024-04-02
  • C#实现学生成绩管理系统
    本文实例为大家分享了C#实现学生成绩管理系统的具体代码,供大家参考,具体内容如下 使用链表写学生成绩管理系统 链表可以灵活的展示增删改查 下面是结果演示 这是登录及部分添加 继续添...
    99+
    2022-11-13
    C#学生成绩管理系统 C#成绩管理系统 C#学生管理系统
  • C++实现学生宿舍管理系统
    本文实例为大家分享了C++实现学生宿舍管理系统的具体代码,供大家参考,具体内容如下 非常简易,完成个作业够用,仅供初学者参考,不喜勿喷。 #include<stdio.h>...
    99+
    2024-04-02
  • C++实现简单学生管理系统
    本文实例为大家分享了C++实现简单学生管理系统的具体代码,供大家参考,具体内容如下 实现学生管理,其中关键字可以自行替换。经过Visual C++6.0验证可执行成功。 #inclu...
    99+
    2024-04-02
  • C#怎么用ASP.NET Core开发学生管理系统
    本篇内容介绍了“C#怎么用ASP.NET Core开发学生管理系统”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!涉及知识点开发学生...
    99+
    2023-06-22
  • C++实现学生信息管理系统(Map实现)
    本文实例为大家分享了C++实现学生信息管理系统的具体代码,供大家参考,具体内容如下 1、 作品的功能描述: 实现一个学生信息管理系统,通过对学生信息类中的成员进行增、删、改、查从而实...
    99+
    2024-04-02
  • JavaWeb实现学生管理系统
    JavaWeb实现学生管理系统 一、项目介绍二、项目结构三、前期准备1.配置maven环境,在pom.xml配置文件中配置项目所依赖的jar包2.在MySql数据库中,创建登录注册表login和学生信息表student(1)登录注册...
    99+
    2023-08-16
    servlet java 数据库
  • C#利用ASP.NET Core开发学生管理系统详解
    目录涉及知识点创建项目登录模块1. 创建控制器--LoginController2. 创建登录视图3. 创建用户模型4. 创建数据库操作DataContext5. 创建数据库和表并构...
    99+
    2024-04-02
  • springboot实现学生管理系统
    本文实例为大家分享了SpringBoot实现学生管理系统,供大家参考,具体内容如下 一、创建springboot项目 点击下一步 点击下一步,选择要添加的依赖 点击下一步,...
    99+
    2024-04-02
  • C语言实现学生消费管理系统
    本文实例为大家分享了C语言实现学生消费管理系统的具体代码,供大家参考,具体内容如下 代码可以实现的功能: (1)直接从终端键盘输入信息(2)从磁盘文件录入学生信息(3)可以查询学生消...
    99+
    2022-11-13
    C语言学生消费系统 C语言消费管理系统 C语言学生管理系统
  • C语言实现班级学生管理系统
    本文实例为大家分享了C语言实现班级学生管理系统的具体代码,供大家参考,具体内容如下 下面是根据班级,这个人数较少的单位设计的学籍管理系统,录入时,要求班内序号由1开始  按顺序录入,...
    99+
    2024-04-02
  • C语言实现学生宿舍管理系统
    本文实例为大家分享了C语言实现学生宿舍管理系统的具体代码,供大家参考,具体内容如下 实现简单的学生宿舍基本信息管理,宿舍的基本信息包括楼号、房间号、面积、所容纳人数、已入住人数等,系...
    99+
    2024-04-02
  • 基于C语言实现学生管理系统
    本文实例为大家分享了C语言实现学生管理系统的具体代码,供大家参考,具体内容如下 1.目标要求: 1.学生成绩管理系统2.可增、删、改、查、浏览3.数据保存在文件中 2.C语言代码: ...
    99+
    2024-04-02
  • C#实现简单学生成绩管理系统
    本文实例为大家分享了C#实现学生成绩管理系统的具体代码,供大家参考,具体内容如下 C#作业 用循环结构/数组实现 进入启动页面 管理员身份登入 用户名:师晓峰密码:88481234...
    99+
    2022-11-13
    C#学生成绩管理系统 C#学生管理系统 C#成绩管理系统
  • c语言实现学生管理系统详解
    目录infor.htest.cinfor.c总结 该学生管理系统的实现是通过分文件的方式来写的,infor.h 文件为头文件,源文件infor.c实现源文件tes...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作