那些事儿......STEP

    写项目之前呢,先来缕缕思路,既然要写学生管理系统,那肯定上不了从数据库中读取信息,然而想要从数据库中拿到你想要的东西,就要先登录,得到他的权限才行,所以我们第一步就要先搞出一个登录页面并且能连接到数据库的.So 就有了第一张图,至于他怎么来的,咱继续往下看!嘻嘻~

一、先登录

        

     登陆页面     登录出错(登录名或密码填写错误)

    想登陆成功需要在登录里加些代码进去,(双击登录进入代码编辑将下面的代码写进去)

 1  //验证用户名密码是否和数据库中匹配
 2             string str = "Data source=.;initial catalog=MySchool;uid=sa";
 3             SqlConnection con = new SqlConnection(str);
 4             string sql = "select count(1) from student where studentname=‘" + txtName.Text + "‘ and loginpwd=‘" + txtPwd.Text + "‘";
 5
 6             SqlCommand cmd = new SqlCommand(sql, con);
 7             try
 8             {
 9                 con.Open();
10                 int count = Convert.ToInt32(cmd.ExecuteScalar());
11                 if (count > 0)
12                 {
13                     this.Hide();
14                     //定位到Main界面
15                     FrmMain frm=new FrmMain();
16                      Tool.pwd= txtPwd.Text;
17                     frm.Show();
18
19                 }
20             }
21             catch (Exception)
22             {
23                 MessageBox.Show("网络出错");
24             }
25             finally
26             {
27                 con.Close();
28
29             }
30
31         }
32         //Load窗体在被用户肉眼看到前就被执行了
33         private void FrmLogin_Load(object sender, EventArgs e)
34         {
35
36         }
37     }

登录页面

    登陆成功后就能进入查询学生系统,所以,我们要写一个前台

生活中的前台是咨询的地方,所以我们的前台也会模仿他们一样,有固定的功能,For example 菜单→修改密码或退出;新建学生信息;查询学生信息;按年级查询学生信息......

    下面小博继续为大家讲解.   

二、编写前台

菜单栏(menuStrip1);工具栏(toolStrip1);右键(contextMenuStrip1);

 

下面进行真正的写项目,写具体"功能"了.

三、新建学生用户

为了让用户点击保存用户信息直接添加到数据库中,需要在"保存"里面加入下面的代码

 1  private void btnEdit_Click(object sender, EventArgs e)
 2         {
 3             //根据学号是否为0,判定该按钮用来执行“添加”还是“修改”
 4             if (stuno!=0)
 5             {
 6               //修改
 7               //update
 8             }
 9             else
10             {
11                 //添加
12                 AddStudent();
13             }
14         }
15
16         //添加学生
17         public void AddStudent()
18         {
19             //添加学生
20             string pwd = txtPwd.Text;//密码
21             string stuname = txtName.Text;//姓名
22             //获取性别
23             string stugender = string.Empty;
24             if (rbtnMale.Checked)
25             {
26                 stugender = "1";
27             }
28             else
29             {
30                 stugender = "0";
31             }
32             //如何给下拉框绑定数据
33             int gid = GetIdByName();
34             //电话
35             string stuPhone = txtPhone.Text;
36
37             //地址
38             string stuAddress = txtAddress.Text;
39             //日期
40             DateTime dt = dpBirthday.Value;
41             string stuEmail = txtEmail.Text;
42             //StudentNo, LoginPwd, StudentName, Gender, GradeId, Phone, Address, Birthday, Email, MyTT
43             string sql = "insert into student values(‘" + pwd + "‘,‘" + stuname + "‘," + stugender + "," + gid + ",‘" + stuPhone + "‘,‘" + stuAddress + "‘,‘" + dt + "‘,‘" + stuEmail + "‘)";
44             string str = "Data source=.;initial catalog=MySchool;uid=sa";
45             SqlConnection con = new SqlConnection(str);
46             SqlCommand cmd = new SqlCommand(sql, con);
47             con.Open();
48             int count = cmd.ExecuteNonQuery();
49             if (count > 0)
50             {
51                 MessageBox.Show("成功!");
52             }
53             con.Close();
54         }
55
56         //该方法将年级名称转换成年级编号
57         public int GetIdByName()
58         {
59         string str = "Data source=.;initial catalog=MySchool;uid=sa";
60         SqlConnection con = new SqlConnection(str);
61         string sql = "select gradeid from grade where gradename=‘"+cboGrade.Text+"‘";
62         SqlCommand cmd = new SqlCommand(sql, con);
63             int gid = 0;
64             try
65             {
66                 con.Open();
67                 gid =Convert.ToInt32(cmd.ExecuteScalar());
68             }
69             catch (Exception)
70             {
71
72                 MessageBox.Show("网络异常");
73             }
74             finally
75             {
76                 con.Close();
77             }
78             return gid;
79         }

添加学生信息

四、从数据库中拿到想要的内容

和上面的方式相同

 1   private void btnSearch_Click(object sender, EventArgs e)
 2         {
 3
 4
 5             //查询数据前,清空LIstView中的数据
 6             lvStuList.Items.Clear();
 7             string sql = @"select Studentno,Studentname,Gender,gradename
 8                             from student,grade
 9                             where student.gradeid=grade.gradeid and studentname like ‘%"+txtStudentName.Text+"%‘ ";
10             LoadDataFromDBToListView(sql);
11         }

从数据库中查询想要的学生信息

以上就是小博今天为大家"传授"的小步骤,希望能多评价即便小博下次改正~如果有高手高手高高手,请联系小博,小博会悉心请教~谢谢.

                      No.QQ:1327805794

 

      

时间: 2024-07-31 14:26:55

那些事儿......STEP的相关文章

还能不能愉快地起一个web服务啦?——1st Step!白话http和代码交互的那点儿事儿~

学写python的时候,我们多多少少都接触到了web程序,然而你有没有想过,当浏览器发送了一个http请求时,等待接收这个请求的后端代码是一种什么样的思想感情? 就像下面这张图里画的一样,后端也许是一段java代码,也许是php代码,当然,如果代码出自我手,最可能的还是一段python代码.这就好比,当你在社交软件上给一个陌生人发了一条消息,对面这个人可能是英国人.印度人也有可能是一只羊或者一只狗...那么问题来了,他们怎么知道你在说啥?当然了,在web服务的世界里没有现实中那么复杂,我们不需要

MVC之前的那点事儿系列(5):HttpPipeline详细分析(下)(转载)

MVC之前的那点事儿系列(5):HttpPipeline详细分析(下) 文章内容 接上面的章节,我们这篇要讲解的是Pipeline是执行的各种事件,我们知道,在自定义的HttpModule的Init方法里,我们可以添加自己的事件,比如如下代码: public class Test : IHttpModule { public void Init(HttpApplication context) { context.BeginRequest += new EventHandler(context_

MVC之前的那点事儿系列(5):Http Pipeline详细分析(下)

文章内容 接上面的章节,我们这篇要讲解的是Pipeline是执行的各种事件,我们知道,在自定义的HttpModule的Init方法里,我们可以添加自己的事件,比如如下代码: public class Test : IHttpModule { public void Init(HttpApplication context) { context.BeginRequest += new EventHandler(context_BeginRequest); context.AuthenticateR

hdu 4735 Little Wish~ lyrical step~(DLX)

题目链接:hdu 4735 Little Wish~ lyrical step~ 题意: 有n个节点的树,每个节点可能是男孩,可能是女孩,节点之间有距离,现在要让所有的女孩周围距离D之内有男孩,问最小需要交换多少次男孩和女孩的位置. 题解: 把每个节点对小于D距离的全部link起来,然后DLX爆艹,意义就是选n个节点去覆盖全部节点,如果这个节点是女生,那么就是要替换的点.然后不断更新答案. 1 #include<bits/stdc++.h> 2 #define F(i,a,b) for(int

有些事儿,工程师可能今生仅此一次

郑昀 创建于2016/9/15 最后更新于2016/9/18 关键词:深度思考,碎片化阅读,做论文,深入研究, 早先在<技术高手如何炼成>一文中提到,我会问面试者,你日常如何构建自己的知识体系.有人会觉得你怎么就问出这么宏大的问题?知识体系,这是什么鬼? 面试时的交谈 工作之后你做过这样的事情吗? 面试是一个谁主张谁举证的过程,有时候需要面试者举出实例,自我证明. 而我认为问一些我们工作中遇到的难题和业务场景是在“欺负”面试者,所以我喜欢问开放型问题: 在你工作之后,你有没有像做毕业论文一样对

ASP.NET MVC轻教程 Step By Step 6——改进表单

上一节我们使用原始的HTML表单来完成留言功能,但是ASP.NET MVC提供了丰富的HTML辅助方法来帮助我们构建更简洁优雅的表单. Step 1. 修改Form标签 首先,我们可以使用Html.BeginForm来创建form标签.这样我们可以将原来的表单改成如下代码. @{Html.BeginForm("Save", "Home"); } <label for="nickname">昵称</label> <in

医疗时鲜(Running)资讯(ZSSURE):移动医疗不算事儿

背景 最近在看Dr.2的书<移动医疗那点事儿>,所以此次博文就厚颜无耻的叫做"移动医疗不算事儿".新的一年,新的积累与进步,继续关注医疗行业的最新动态.此次主要介绍吐槽一下关于"自由执业"和"电子病例"的新闻.Running-- 自由执业 在<移动医疗那点事儿>中,Dr.2开篇问了一个问题"什么样的医生会出来自由执业?刚毕业的孩子会出来自由执业么?",其观点认为:会从体制内出来的医生通常都是一些在临床业

《Java编程那点事儿》读书笔记(七)——多线程

1.继承Thread类 通过编写新的类继承Thread类可以实现多线程,其中线程的代码必须书写在run方法内部或者在run方法内部进行调用. public class NewThread extends Thread { private int ThreadNum; public NewThread(int ThreadNum){ this.ThreadNum = ThreadNum; } public void run(){ try{ for(int i = 0;i < 10;i ++){ T

安装kali之后那些事儿

完全是自己学习后的笔记,和基本的linux配置命令 输入的命令    输入的内容 1.更新软件源:修改sources.list文件: leafpad /etc/apt/sources.list #官方源 deb http://http.kali.org/kali kali main non-free contribdeb-src http://http.kali.org/kali kali main non-free contribdeb http://security.kali.org/kal