学习WinForm窗体程序也有一段时间了,今天就来尝试着来一个项目热热身~

在我们通常使用的MySchool管理中,不外乎这几种功能:增、删、改、查、改密码

在过去的C#中确实是挺简单的,但是在学习了WinForm的各种控件以后,我们就能

彻底摆脱控制台程序的low!走上高大上的道路!~

>切记:每个控件的使用前都要先修改他们的Name属性

虽然连接数据库的代码都已经很熟了,但是还是要再次强调一下!

string str = "Data source=.;initial catalog=MySchool;uid=sa";
SqlConnection con = new SqlConnection(str);

>>>验证数据库中的账户和密码来登录,从而才能显示主菜单

再次强调下,连接到功能窗口的方法,比如是连接到新建学生用户的

eg:

  //在单击"新建学生用户"的Click事件的方法中添加如下代码

  FormStudent frm = new FormStudent();

  frm.Show(); 

既然说到了新增学生信息,那么就来认真的解说下具体的步骤吧

//在Student窗体的Load事件中就要把应填入数据信息的text文本框绑定到数据库上

public void LoadAllGrade()
{
//拿到所有的年级
string str = "Data source=.;initial catalog=MySchool;uid=sa";
SqlConnection con = new SqlConnection(str);
string sql = "select gradename from grade";
SqlCommand cmd = new SqlCommand(sql, con);
try
{
con.Open();
SqlDataReader dr = cmd.ExecuteReader();
if (dr != null)
{
if (dr.HasRows)
{
while (dr.Read())
{
string gname = dr["gradename"].ToString();
//每读到一个年级名称,我就将"S1",添加到下拉框
cboGrade.Items.Add(gname);
}
}
}
}
catch (Exception)
{
MessageBox.Show("网络异常");
}
finally
{
con.Close();
}
}

上面简单的介绍了怎么把复杂的年级下拉框从数据库中读取出来并绑定到下拉框上

接下就随便找俩个普通的文本框来进行传值吧

使用insert语句向MySchool中添加学生信息

          //编辑学生信息并保存     
      //将获取的学号转化为int类型
int non = Convert.ToInt32(txtStuno.Text);
//添加学生密码
string stupwd = TextNewPwd.Text;
string sql = "insert into Student values('" + stupwd + "','" + stuname + "','" + stugender + "');

接下来就是按照学生姓名来进行模糊查询学生信息了

主要就是在窗体的Load事件中就要遍历Myschool,将所有的学生信息读取到ListView中.

       //加载出所有的学生信息
       string str = "Data source=.;initial catalog=MySchool;uid=sa";
SqlConnection con = new SqlConnection(str);
string sql = "select * from Student;
SqlCommand cmd = new SqlCommand(sql, con);
try
{
con.Open();
SqlDataReader dr = cmd.ExecuteReader();
while (dr.Read())
{
//将读取出来的信息赋值给对应的TextBox
//姓名
string StuName = dr["studentname"].ToString();
gbStuN.Text = StuName;
//密码
string StuPwd = dr["LoginPwd"].ToString();
TextName.Text = StuPwd;
TextNewPwd.Text = StuPwd;
//电话
string StuPhone = dr["Phone"].ToString();
TextPhone.Text = StuPhone;
//邮箱
string StuEmail = dr["Email"].ToString();
TextEmail.Text = StuEmail;
//地址
string StuAdress = dr["Address"].ToString();
Address.Text = StuAdress; //年级编号
int gid = Convert.ToInt32(dr["gradeid"]);
//- - - 根据年级编号获取对应的年级名称
string gradename = GetGradeNameByGradeId(gid);
cboGrade.Text = gradename; //性别
string gender = dr["gender"].ToString();
if (gender.Equals(""))
{
raonan.Checked = true;
}
else if (gender.Equals(""))
{
raonv.Checked = true;
}
//出生日期
DateTime dt = Convert.ToDateTime(dr["birthday"]);
Dt.Value = dt;
}
dr.Close();
}
catch (Exception)
{
MessageBox.Show("检查代码3333333333!");
}
finally
{
con.Close();
}

那么接下来就只需要在查询语句后面加上where条件就可以进行判断查询了,那么相应的修改和删除也就解决了,具体的就不多说了,抓紧时间进行下一步!

接下来就是修改当前用户的密码了,当然了,也要进行相应的一些判断语句是吧,不然随便就可以更改岂不是乱套了?!~

就像酱紫:

  

判定一下用户输入的原密码是否是正确的,然后在进行相应的操作!,接下来就一起来见证吧~

我们新创建一个窗体添上相应的控件,更改其属性即可,主要代码如下:

 //在单击修改的Click事件中进行判定
//判断原密码是否输入正确来
if (tboldpwd.Text == pwd)
{
//第二次的密码tbpwd第一次的密码tbnewpwd
if (tbpwd.Text == tbnewpwd.Text)
{
string str = "Data Source=.;initial catalog=MySchool;uid=sa";
SqlConnection con = new SqlConnection(str);
con.Open();
string sql = "update Student set LoginPwd='" + tbnewpwd.Text + "' where LoginPwd='" + tboldpwd.Text + "'";
SqlCommand cmd = new SqlCommand(sql, con);
int count = Convert.ToInt32(cmd.ExecuteNonQuery());
if (count > )
{
MessageBox.Show("修改成功!");
}
else
{
MessageBox.Show("修改失败!");
}
}
else
{
MessageBox.Show("两次密码不一致!");
}
}
else
{
MessageBox.Show("请输入正确的原密码!","温馨提示");
}

最主要的就是在用户登录的FormLogin窗体中将用户用来进行登录的密码付给一个公有的变量,

在修改密码的窗体中进行调用,用来和用户输入的原密码进行匹配,当然了,这样的修改密码确实有些鸡肋,

但是我们同样的可以依照这样的方法来把用户输入的密码和数据库中的密码值进行匹配,在这里就不细说了...

时间问题,今天就到这里,明天继续更新!敬请期待

WinForm窗体项目 之 MySchool管理系统终极版的更多相关文章

  1. Winform开发框架之客户关系管理系统(CRM)的开发总结系列4-Tab控件页面的动态加载

    在前面介绍的几篇关于CRM系统的开发随笔中,里面都整合了多个页面的功能,包括多文档界面,以及客户相关信息的页面展示,这个模块就是利用DevExpress控件的XtraTabPage控件的动态加载实现的 ...

  2. Winform开发框架之客户关系管理系统(CRM)的开发总结系列2-基于框架的开发过程

    在上篇随笔<Winform开发框架之客户关系管理系统(CRM)的开发总结系列1-界面功能展示>中介绍了我的整个CRM系统的概貌,本篇继续本系列的文章,介绍如何基于我的<winform ...

  3. 【转】WinForm窗体显示和窗体间传值

    以前对WinForm窗体显示和窗体间传值了解不是很清楚 最近做了一些WinForm项目,把用到的相关知识整理如下 A.WinForm中窗体显示 显示窗体可以有以下2种方法: Form.ShowDial ...

  4. C#实现WinForm窗体逐渐显示效果

    C#实现WinForm窗体逐渐显示效果,这个博客园里面已经有其它人已经实现了,原理很简单,就是通过定时改变窗体的透明度(从0到1,即透明度从完全透明到不透明),我这里也是按照这个思路来实现的,但是我做 ...

  5. .NET vs2010中使用IrisSkin2.dll轻松实现winForm窗体换肤功能

    IrisSkin2.dll是一款很不错的免费皮肤控件,利用它可以轻松的实现winForm窗体换肤! 网上很多朋友说在VS2010中不能使用IrisSkin2.dll,我这里提供一个取巧的办法. Iri ...

  6. Winform开发框架之客户关系管理系统(CRM)的开发总结系列3-客户分类和配置管理实现

    我在本系列随笔的开始,介绍了CRM系统一个重要的客户分类的展示界面,其中包含了从字典中加载分类.从已有数据中加载分类.以及分组列表中加载分类等方式的实现,以及可以动态对这些节点进行配置,实现客户分类的 ...

  7. 客户端(Winform窗体)上传文件到服务器(web窗体)简单例子

    客户端:先创建一个winform窗体的应用程序项目 项目结构

  8. Winform窗体实现简单的二维码生成和保存

    二维码的生成需要用到二维码生成的类库,ThoughtWorks.QRCode.dll 步骤: 第一步:下载二维码生成类库,ThoughtWorks.QRCode.dll 第二步:新建winform项目 ...

  9. 关于WinForm引用WPF窗体---在Winform窗体中使用WPF控件

    项目中有个界面展示用WPF实现起来比较简单,并且能提供更酷炫的效果,但是在WinForm中使用WPF窗体出现了问题,在网上找了一下有些人说Winform不能引用WPF的窗体,我就很纳闷,Win32都能 ...

随机推荐

  1. 49. spring boot日志升级篇—理论【从零开始学Spring Boot】

    我们之前在其中的一篇文章介绍过如何在spring boot中使用日志记录SLF4J. Spring Boot在所有内部日志中使用Commons Logging,但是默认配置也提供了对常用日志的支持,如 ...

  2. HDU 4923 (贪心+证明)

    Room and Moor Problem Description PM Room defines a sequence A = {A1, A2,..., AN}, each of which is ...

  3. Uva548 Tree

    Tree You are to determine the value of the leaf node in a given binary tree that is the terminal nod ...

  4. 【eclipse】eclipse启动优化&打印GC信息&重要的堆结构连接

    eclipse启动优化,终于不那么卡了! 网上找了好多都是myEclipse的优化的,跟eclipse有点区别,找了很多方法还是不能让这个eclipse(Version: Kepler Release ...

  5. HDU A/B 扩展欧几里得

    Problem Description 要求(A/B)%9973,但由于A很大,我们只给出n(n=A%9973)(我们给定的A必能被B整除,且gcd(B,9973) = 1).   Input 数据的 ...

  6. 杨辉三角的打印(Java)

    // //输入指定的行数,打印杨辉三角 // //每个数等于它上方两数之和. //每行数字左右对称,由1开始逐渐变大. //第n行的数字有n项. // // // //可从打印菱形的思想出发:???? ...

  7. python_swift_project_swift使用

    1. swift的存取用curl命令. 我们先把pub url 和token保存起来 root@A071103070098:~# export pubURL=http://10.194.148.102 ...

  8. uva 11552 dp

    UVA 11552 - Fewest Flops 一个字符串,字符串每 k 个当作一组,组中的字符顺序能够重组.问经过重组后改字符串能够编程最少由多少块字符组成.连续的一段字符被称为块. dp[i][ ...

  9. git SSL certificate problem: unable to get local issuer certificate

    cmd 命令行中输入  git config --global http.sslVerify false 之后再进行操作

  10. ckeditor 设置含有html标签的值

    ckeditor 设置含有html标签的值 需要使用ajax请求拿到那个字符串,然后用editor.setData(text);