【C#:学生信息管理系统-部分代码1】

2023-11-16

创建项目Windows窗体应用程序:

创建一个DBhelp.cs类,连接数据库,每次只用调用这个类就行了:这样调用:DBhelp.conn.Open();

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;

namespace Win9_28
{
    public static class DBhelp
    {
        static string  strconn = "Data Source=.;Initial Catalog=studentInf;Integrated Security=True";
        public static SqlConnection conn = new SqlConnection(strconn);
        public static SqlCommand comm = new SqlCommand();
        //public static SqlDataReader read = comm.ExecuteReader();
    }
}

1.点击项目添加项:Windows窗体,编写登录窗体:Login.cs:

首先:修改窗体的Test属性为登录、(Name)属性命名为frmLogin

添加一个图片控件PictureBox控件,(Name)命名为:pictureBox1, Image属性:导入图片,SizeMode属性:StretchImage来显示整张图片

添加一个Label控件 (Name)命名:lblUserName,Text:用户名 ,输入框控件TextBox,(Name):txtUserName

添加一个Label控件 (Name)命名:lblUserPwd ,Text:密码 ,输入框控件TextBox,(Name):txtUserPwd,如果想密码不显示设置属性PasswordChar:*

添加2个Button控件,前一个(Name):btnRegister Text:登录,后一个(Name):btnESC Text:取消

样式如下:

登录按钮里的方法:双击登录按钮:会在后台自动生成一个登录按钮的事件qu

private void btnRegister_Click(object sender, EventArgs e)
        {
            string strconn = "Data Source=.;Initial Catalog=studentInf;Integrated Security=True";
            SqlConnection conn = new SqlConnection(strconn);//创建SqlConnection对象,连接数据库
            string name = txtUserName.Text;//获取姓名文本框的内容
            string pwd = txtUserPwd.Text;//获取密码文本框的内容
            try
            {
                conn.Open();
                string sqlstr=string.Format("select * from tb_User where UserName='{0}' and UserPasswd='{1}'",name,pwd);
                SqlCommand comm = new SqlCommand();//创建sqlCommand对象,执行SQL语句
                comm.Connection = conn;//执行SqlCommand对象的Connection属性,设置Command对象的Connection对象
                comm.CommandText = sqlstr;//执行SqlCommand对象的的CommandText属性,设置Command对象的sql语句

                /*
                if (name == string.Empty || pwd == string.Empty)
                {
                    MessageBox.Show("用户名或密码不能为空", "系统提示");
                }*/


                if (comm.ExecuteScalar() == null)//ExecuteScalar()返回查询结果集中的第一行第一列,没有返回null
                {
                    MessageBox.Show("用户名与密码不匹配,登录失败");//提示信息
                    this.txtUserName.Clear();
                    this.txtUserPwd.Clear();
                    this.txtUserName.Focus();

                }
                else 
                {
                    //this.Hide();//此页面隐藏
                    frmMain frmmain = new frmMain();//创建新的页面
                    frmmain.Show();//打开新的页面
                }
            }
            catch (Exception ex)
            {

                MessageBox.Show(ex.Message);
            }
            finally
            {
             conn.Close();
            }
        }

取消按钮的方法,双击取消按钮:

private void btnESC_Click(object sender, EventArgs e)
        {
            Application.Exit();//退出程序,结束运行
        }

2. 添加学院页面:frmAddCollege.cs

 更该窗体的Text属性:添加院系信息,(Name):属性:frmAddCollege

添加两个Lable控件,添加两个文本输入框控件TextBox,命名为:txtDepartmentID、txtDepartmentName,添加两个按钮控件Button  并为它们命令,更改需要该Text值

双击添加按钮,为添加按钮添加OnClick点击事件,代码如下:

private void btnAdd_Click(object sender, EventArgs e)
        {
            string conn = "Data Source=.;Initial Catalog=studentInf;Integrated Security=True";
            SqlConnection a = new SqlConnection(conn);//创建Connection对象

            if (txtDepartmentID.Text == "" || txtDepartmentName.Text == "")
            {
                MessageBox.Show("院系编号或院系名称不能为空!");
            }
            else
            {
                try
                {
                    a.Open();
                    string sqlstr = string.Format("insert into tb_College values('{0}','{1}')", txtDepartmentID.Text, txtDepartmentName.Text);

                    SqlCommand comm = new SqlCommand();//创建Command 对象执行SQL语句
                    comm.Connection = a;
                    comm.CommandText = sqlstr;
                    //int result = comm.ExecuteNonQuery();

                    if (comm.ExecuteNonQuery() > 0)
                    {
                        MessageBox.Show("插入成功");
                    }
                    else
                    {
                        MessageBox.Show("插入失败");
                    }
                }
                catch (Exception ex)
                {

                    MessageBox.Show(ex.Message);
                }
                finally
                {
                    a.Close();
                }
            }
        }

为取消按钮添加点击事件,关闭此页面:

private void btnClose_Click(object sender, EventArgs e)
        {
            this.Hide();
        }

2.创建frmEditCollege.cs窗体

 

 修改窗体(Name)为:frmEditCollege,Text:院系信息系统

添加一个数据控件:dataGridView控件,点击上方的小三角,添加数据源-选择数据源-添加数据源-数据库-数据集-里面的表,就把数据源添加进来了

在添加两个Lable控件,Text命名为:院系编号:、院系名称,添加两个文本框,添加4个按钮

当想要店家数据源的数据在下边文本框内显示,双加数据控件,添加如下代码: 

​​ private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            txtCollegeNo.Text = this.dataGridView1.CurrentRow.Cells[0].Value.ToString();
            txtCollegeName.Text = this.dataGridView1.CurrentRow.Cells[1].Value.ToString();
        }

为查询按钮,添加点击事件,代码如下:

private void btnSelect_Click(object sender, EventArgs e)
        {
            string conn = "Data Source=.;Initial Catalog=studentInf;Integrated Security=True";
            SqlConnection a = new SqlConnection(conn);

            try
            {
                a.Open();
                string sqlstr = string.Format("select * from tb_College where DepartmentID='{0}'", txtCollegeNo.Text);//Format转化为字符串
                SqlCommand comm = new SqlCommand();
                comm.Connection = a;
                comm.CommandText = sqlstr;

                SqlDataReader read = comm.ExecuteReader();//创建DataReader对象,在数据库中读取数据
                if (read.Read())
                {
                    txtCollegeName.Text = read[1].ToString();
                }
                else
                {
                    MessageBox.Show("查询结果不存在!");
                    txtCollegeName.Text = "";
                }


            }
            catch (Exception ex)
            {

                MessageBox.Show(ex.Message);
            }
            finally
            {
                a.Close();
            }
        }

双击删除按钮,添加点击事件:

private void btnDelete_Click(object sender, EventArgs e)
        {
            try
            {
                DBhelp.conn.Open();
                string sqlstr = string.Format("delete from tb_College where DepartmentID='{0}'and DepartmentName='{1}' ", txtCollegeNo.Text, txtCollegeName.Text);
                DBhelp.comm.CommandText = sqlstr;
                DBhelp.comm.Connection = DBhelp.conn;

                if ((int)DBhelp.comm.ExecuteNonQuery() > 0)
                {
                    MessageBox.Show("删除成功");

                }
                else
                {
                    MessageBox.Show("删除失败");
                }
            }
            catch (Exception ex)
            {

                MessageBox.Show(ex.Message);
            }
            finally
            {
                DBhelp.conn.Close();
            }
        }

双击修改按钮,添加点击事件:

 private void btnCollege_Click(object sender, EventArgs e)
        {
            /*string conn = "Data Source=.;Initial Catalog=studentInf;Integrated Security=True";
            SqlConnection a = new SqlConnection(conn);

            if (txtCollegeNo.Text == "" || txtCollegeName.Text == "")
            {
                MessageBox.Show("院系编号或院系名称不能为空!");
            }
            else
            {
                try
                {
                    a.Open();
                    string sqlstr = string.Format("insert into tb_College values('{0}','{1}')", txtCollegeNo.Text, txtCollegeName.Text);

                    SqlCommand comm = new SqlCommand();
                    comm.Connection = a;
                    comm.CommandText = sqlstr;
                    int result = comm.ExecuteNonQuery();

                    if (result != 0)
                    {
                        MessageBox.Show("插入成功");
                    }
                    else
                    {
                        MessageBox.Show("插入失败");
                    }
                }
                catch (Exception ex)
                {

                    MessageBox.Show(ex.Message);
                }
                finally
                {
                    a.Close();
                }
            }*/
            //上面代码无用
            try
            {
                DBhelp.conn.Open();
                string sqlstr = string.Format("update tb_College set DepartmentName='{0}' where DepartmentID='{1}'",txtCollegeName.Text,txtCollegeNo.Text);
                DBhelp.comm.CommandText = sqlstr;
                DBhelp.comm.Connection = DBhelp.conn;

                if ((int)DBhelp.comm.ExecuteNonQuery() > 0)
                {
                    MessageBox.Show("修改成功");

                }
                else
                {
                    MessageBox.Show("修改失败");
                }
            }
            catch (Exception ex)
            {

                MessageBox.Show(ex.Message);
            }
            finally
            {
                DBhelp.conn.Close();
            }
        }

点击取消按钮,添加点击事件:

 private void btnCollegeClose_Click(object sender, EventArgs e)
        {
            this.Hide();
        }

设置页面初始时选中院系ID,需要设置页面加载frmCollege_Load代码:

private void frmCollege_Load(object sender, EventArgs e)
        {
            // TODO: 这行代码将数据加载到表“studentInfDataSet3.tb_College”中。您可以根据需要移动或删除它。
            this.tb_CollegeTableAdapter.Fill(this.studentInfDataSet3.tb_College);
            string conn = "Data Source=.;Initial Catalog=studentInf;Integrated Security=True";
            SqlConnection a = new SqlConnection(conn);

            try
            {
                a.Open();
                string sqlstr = string.Format("select * from tb_College where DepartmentName='医学院'");
                SqlCommand comm = new SqlCommand();
                comm.Connection = a;
                comm.CommandText = sqlstr;

                SqlDataReader read = comm.ExecuteReader();
                if (read.Read())
                {
                    txtCollegeNo.Text = read[0].ToString();
                }

                
            }
            catch (Exception ex)
            {

                MessageBox.Show(ex.Message);
            }
            finally
            {
                a.Close();
            }



            try
            {
                DBhelp.conn.Open();
                string sqlstr = "select * from tb_College";
                SqlDataAdapter datadapter = new SqlDataAdapter(sqlstr, DBhelp.conn);
                DataSet set = new System.Data.DataSet();
                datadapter.Fill(set);
                dataGridView1.DataSource = set.Tables[0];

            }
            catch (Exception ex)
            {

                MessageBox.Show(ex.Message);
            }
            finally
            {
                DBhelp.conn.Close();
            }
        }

3.创建添加学生页面,frmAddStudent.cs:

 添加Lable命名学号,输入框TextBox控件  姓名Label 输入框TextBox,添加一个Panel容器里面放两个单选按钮控件RadioButton命名男  、女 

添加Label控件命名出生日期,输入框TextBox控件

添加Label控件命名:班级,添加一个下拉框控件ComboBox控件,点击ComboBox控件上方的小三角,选择使用数据绑定项,绑定数据库中的表

... 

 添加两个按钮Button命名,添加、退出

双击添加按钮,添加点击事件:

 private void btnAdd_Click(object sender, EventArgs e)
        {
            try
            {
                DBhelp.conn.Open();
                string sqlstr = string.Format("insert into tb_Student values('{0}','{1}','{2}','{3}','{4}','{5}','{6}')", txtstudentID.Text, txtStudentName.Text, radmale.Checked ? radFamale.Text : radmale.Text, txtBirthday.Text, cmbClassID.Text, txtMobilePhone.Text, txtAddress.Text);
                DBhelp.comm.CommandText = sqlstr;
                DBhelp.comm.Connection = DBhelp.conn;

                if ((int)DBhelp.comm.ExecuteNonQuery() > 0)
                {
                    MessageBox.Show("插入成功");

                }
                else
                {
                    MessageBox.Show("插入失败!");
                }
            }
            catch (Exception ex)
            {

                MessageBox.Show(ex.Message);
            }
            finally
            {
                DBhelp.conn.Close();
            }
        }

双击退出按钮,添加点击事件:

 private void btnClose_Click(object sender, EventArgs e)
        {
            this.Hide();
        }

后续代码见:学生信息管理系统-部分代码2

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【C#:学生信息管理系统-部分代码1】 的相关文章

  • WinForms:如何确定窗口是否不再活动(没有子窗口具有焦点)?

    我的应用程序使用多个窗口 我想隐藏一个特定窗口 以防应用程序失去焦点 当活动窗口不是应用程序窗口时 source https stackoverflow com questions 466354 how can i tell if a wi
  • 为什么libc++的shared_ptr实现使用完整内存屏障而不是宽松内存屏障?

    在boost的实现中shared ptr 它用放松内存排序以增加其引用计数 https github com boostorg smart ptr blob master include boost smart ptr detail sp
  • asp.net 文本框文本模式数字,仅允许数字

    我只是想知道 ASP NET 中是否有一种方法只允许文本框中的数字textmode number 当我使用这个时
  • 为什么我不能用 `= delete;` 声明纯虚函数?

    Intro 纯虚函数使用通用语法声明 virtual f 0 然而 自 c 11 以来 有一种方法可以显式地传达non existence 特殊 成员函数的 Mystruct delete eg default constructor Q
  • 为什么大多数 C 开发人员使用 Define 而不是 const? [复制]

    这个问题在这里已经有答案了 在许多程序中 define与常量具有相同的用途 例如 define FIELD WIDTH 10 const int fieldWidth 10 我通常认为第一种形式优于另一种形式 它依赖于预处理器来处理基本上是
  • 32 位应用程序的特征最大矩阵大小

    所以 我正在寻找Eigen http eigen tuxfamily org index php title Main Page当我尝试声明大于 10000x10000 的矩阵时 包崩溃 我需要声明一个像这样的矩阵 可靠地大约有 13000
  • 使用post方法将多个参数发送到asp.net core 3 mvc操作

    使用 http post 方法向 asp net mvc core 3 操作发送具有多个参数的 ajax 请求时存在问题 参数不绑定 在 dot net 框架 asp net web api 中存在类似的限制 但在 asp net mvc
  • C# 中的接口继承

    我试图解决我在编写应用程序时遇到的相当大的 对我来说 问题 请看这个 为了简单起见 我将尝试缩短代码 我有一个名为的根接口IRepository
  • 如何配置 WebService 返回 ArrayList 而不是 Array?

    我有一个在 jax ws 上实现的 java Web 服务 此 Web 服务返回用户的通用列表 它运行得很好 Stateless name AdminToolSessionEJB RemoteBinding jndiBinding Admi
  • 从多个类访问串行端口

    我正在尝试使用串行端口在 arduino 和 C 程序之间进行通信 我对 C 编程有点陌生 该程序有多种用户控制形式 每一个都需要访问串口来发送数据 我需要做的就是从每个类的主窗体中写入串行端口 我了解如何设置和写入串行端口 这是我的 Fo
  • 检查算术运算中的溢出情况[重复]

    这个问题在这里已经有答案了 可能的重复 检测 C C 中整数溢出的最佳方法 https stackoverflow com questions 199333 best way to detect integer overflow in c
  • 如何在c#中的内部类中访问外部类的变量[重复]

    这个问题在这里已经有答案了 我有两个类 我需要声明两个类共有的变量 如果是嵌套类 我需要访问内部类中的外部类变量 请给我一个更好的方法来在 C 中做到这一点 示例代码 Class A int a Class B Need to access
  • 如何一步步遍历目录树?

    我发现了很多关于遍历目录树的示例 但我需要一些不同的东西 我需要一个带有某种方法的类 每次调用都会从目录返回一个文件 并逐渐遍历目录树 请问我该怎么做 我正在使用函数 FindFirstFile FindNextFile 和 FindClo
  • 是否可以有一个 out ParameterExpression?

    我想定义一个 Lambda 表达式out范围 有可能做到吗 下面是我尝试过的 C Net 4 0 控制台应用程序的代码片段 正如您在 procedure25 中看到的 我可以使用 lambda 表达式来定义具有输出参数的委托 但是 当我想使
  • 耐用功能是否适合大量活动?

    我有一个场景 需要计算 500k 活动 都是小算盘 由于限制 我只能同时计算 30 个 想象一下下面的简单示例 FunctionName Crawl public static async Task
  • 结构体指针的动态数组

    我必须使用以下代码块来完成学校作业 严格不进行任何修改 typedef struct char firstName char lastName int id float mark pStudentRecord pStudentRecord
  • 什么是 __declspec 以及何时需要使用它?

    我见过这样的例子 declspec在我正在阅读的代码中 它是什么 我什么时候需要使用这个构造 这是 Microsoft 对 C 语言的特定扩展 它允许您使用存储类信息来赋予类型或函数属性 文档 declspec C https learn
  • 用于 C# XNA 的 Javascript(或类似)游戏脚本

    最近我准备用 XNA C 开发另一个游戏 上次我在 XNA C 中开发游戏时 遇到了必须向游戏中添加地图和可自定义数据的问题 每次我想添加新内容或更改游戏角色的某些值或其他内容时 我都必须重建整个游戏或其他内容 这可能需要相当长的时间 有没
  • Googletest:如何异步运行测试?

    考虑到一个包含数千个测试的大型项目 其中一些测试需要几分钟才能完成 如果按顺序执行 整套测试需要一个多小时才能完成 通过并行执行测试可以减少测试时间 据我所知 没有办法直接从 googletest mock 做到这一点 就像 async选项
  • 匿名结构体作为返回类型

    下面的代码编译得很好VC 19 00 23506 http rextester com GMUP11493 标志 Wall WX Za 与VC 19 10 25109 0 标志 Wall WX Za permissive 这可以在以下位置检

随机推荐

  • JavaScript奇淫技巧:反调试

    JavaScript奇淫技巧 反调试 本文 将分享几种JS代码反调试技巧 目标是 实现防止他人调试 动态分析自己的代码 检测调试 方法一 用console log检测 代码 var c new RegExp 1 c toString fun
  • OpenCV+python实现摄像头简单手势识别--进度条控制亮度

    文章目录 前言 一 整体框架 二 使用步骤 1 引入库 2 第一步 打开摄像头 3 第二步 设置回调函数 4 第三步 肤色检测 5 第四步 进行高斯滤波 6 第五步 边缘轮廓检测 7 第六步 求出手势的凹凸点 8 第七步 利用凹凸点个数判断
  • c++数组排序的五种方法

    方法一 冒泡排序 比较相邻的元素 如果第一个比第二个大 就交换他们两个 对每一对相邻元素做同样的工作 执行完毕后 找到第一个最大值 重复以上的步骤 每次比较次数 1 直到不需要比较 示例 对数组4 2 8 0 5 7 1 3 9 进行排序
  • 2023华为od机试 Java【矩阵的最大值和最小值】

    题目 现在给你一个N M矩阵 M表示有M个矩阵 你的目标是找出M个该矩阵中每列元素的最大值 然后输出这M个值中的最小值 示例1 输入 1 2 3 4 输出 3 代码 import java util Scanner public class
  • 人工智能必备数学基础-目录

    数学基础学习笔记 为了学习人工智能 需要先打好数学基础 这里是为学习人工智能而准备的数学基础 线性代数 1 1 矩阵及其运算 1 1 1 矩阵基本概念及意义 1 1 2 基本运算 1 1 3 矩阵的迹 1 1 4 矩阵的转置 1 1 5 对
  • linux中文件权限

    linux中一切都是文件 这个设计秒不可言阿 在linux系统中每一个文件都有 三组权限 所有者 所属组 其它用户 文件类型 符号 作用 普通文件 d 目录文件 l 链接文件 b 块设备文件 c 字符设备文件 p 管道文件 文件权限 ls
  • 设计模式-原型模式

    文章目录 前言 什么是原型模式 Java中的原型模式 使用场景 优缺点 结论 前言 在软件开发中 设计模式是一种重要的思想和方法 用于解决常见的编程问题 原型模式是其中之一 它允许我们通过复制现有对象来创建新对象 而无需依赖具体类的构造函数
  • Java System.out.println()的简单理解

    前言 想必很多人对System out println 只是简单的进行运用 并未深入了解其背后的原理 例如当问及当中的out是什么 很多人可能一时答不上来 又比如问道println 方法属于那个类 你可能不假思索的答System类 可结果真
  • PostgreSQL(一)Windows安装

    目录 一 下载 二 安装PostgreSQL 三 安装StackBuilder 四 打开PostgreSQL管理工具pgAdmin 五 打开命令行 一 下载 下载地址 https www enterprisedb com downloads
  • openstack热迁移机制分析(libvirt热迁移模型、nova热迁移控制逻辑、调试方法)

    前段时间在解决大内存热迁移失败的时候 查阅了下openstack热迁移相关知识 有了一些记录跟大家分享下 以基于L版openstack qemu kvm 跟大家分享下API库libvirt的热迁移机制和nova控制逻辑的一些记录 注 这篇博
  • Jquery获取select选中的文本与值

    Jquery获取select选中的文本与值 jquery获取select选择的文本与值 获取select 获取select 选中的 text ddlregtype find option selected text 获取select选中的
  • Python3 unittest学习

    Python3 unittest学习 unittest单元测试框架 基本结构 执行测试 普通方式执行 通过unittest模块执行 跳过测试与预期失败 使用子测试区分测试迭代 类与函数 class unittest TestCase met
  • Linux内核中进程的初始化

    分析start kernel时应该会注意到Linux内核0号进程的初始化 见init main c set task stack end magic init task 其中 init task为第一个进程 0号进程 的进程描述符结构体变量
  • com.aspose.diagram.afr: Unexcepted eof.

    背景 SpringBoot项目 使用aspose diagram操作Visio 并且使用了模具文件 并将其放在了resource下面 代码 读取resource下面的文件 这种方法在linux环境上面依然可以使用 Resource reso
  • C#访问SQLite数据库,实现数据的增删改查功能

    说明 本文的代码是基于Winform中举例的 经过实测可用 1 封装Sqlite操作类 sqLiteHelper using System using System Collections Generic using System Linq
  • Arduino调节反馈式比例线性组件

    当您需要了解执行器的确切位置时 就需要光学反馈系列 它功能强大 可靠的执行器带有内置的光学传感器 可在您需要时提供反馈 光反馈没有内置控制器 但确实提供了单相脉冲作为位置反馈信号 可以将其输入到诸如Arduino之类的外部控制器中 多个线性
  • Selenium成长之路-24 frame(iframe)的处理

    今天来了解一下 frame的标签 frame标签有三种 frameset iframe frame gt gt gt frameset就当做一个普通的标签使用 gt gt gt 而frame与iframe就有点特殊了 所以接下来的时间 我们
  • 肖磊:不了解人类货币史,就别拿数字货币乱吹牛

    在知乎上 有一个并不起眼的问题 有人问 如果世界上只有一种货币 且总量一定 这个世界会发生什么 其中一个回答是这样的 假如一个村子只给他一亿流通币 且只准以这种流通币交易 会发生什么情况呢 首先你会感觉物价便宜了 因为在社会物资增加 而货币
  • c语言 char / short / int中能存储多大的数据?

    我们都知道char能存储的数据范围是 128 127 unsigned chard 范围是0 255 short能存储的数据范围是 32768 32767 unsigned short 范围是0 65535 int能存储的数据范围是 214
  • 【C#:学生信息管理系统-部分代码1】

    创建项目Windows窗体应用程序 创建一个DBhelp cs类 连接数据库 每次只用调用这个类就行了 这样调用 DBhelp conn Open using System using System Collections Generic