C#登录窗口及验证(+SQL)
团队成员及分工
团队: Blue 团队共有六人
姓名: 学号后四位: 贡献分:
张 宇(队长) 1152 1+1.7=2.7分
丁志愿 1011 1+1=2分
侯贺琦 1027 1+1=2分
李锦城 1040 1+0.3=1.3分
张玉冕 1153 1分
康 贺 1169 1分
1.确定团队成员绩效评估方法 -->个人在团队中的绩效
2.需求分析及设计思路 由张 宇、侯贺琦 负责
3.界面设计及文档记录 由康贺、张玉冕负责
4.具体代码编写(程序设计) 每个成员都要认领自己认为可以完成的任务
5.测试与调试 由丁志愿、李锦城负责
目标:为了顺利完成团队任务,促进每一个成员的学习。
A 每次集合是否按时到场
B 是否能促进团队的团结。
C 是否能按时在团队合作中按时完成编码任务
D 是否能按时提交每日的工作日志
达到以上要求,根据每个人对团队所做的贡献来评分,凡做一件不利于团队团结和项目进度的行为皆扣相应的分数。
姓名 |
张宇 |
侯贺琦 |
李锦城 |
康贺 |
张玉冕 |
丁志愿 |
是否按时到会 |
100 |
100 |
100 |
90 |
90 |
100 |
会上积极发言 |
100 |
100 |
90 |
70 |
80 |
100 |
按时完成各自任务 |
100 |
100 |
90 |
75 |
80 |
100 |
提交每日的工作日志 |
100 |
100 |
90 |
90 |
90 |
100 |
工作状况分值 |
400 |
400 |
370 |
325 |
340 |
400 |
用户需求:
可以通过输入用户名和密码来进行登录!并且在登录的时候,如果用户名不存在,亦或是密码不对,此时要给出提示!
具体设计思路:
第一步:先创建一个数据库!毕竟没有用户也没办法登录是吧,在VS服务器资源管理器里新建一个名为repair的数据库,添加一个名为user_info的表,并插入了两条测试记录!
第二步:新建一个窗体,摆上三个Lable,两个文本框,两个按钮,给每个控件起一个好记的Name,界面布置一下!
第三步:准备工作做好,下面开始写登录按钮事件,这时就要连接数据库了,那么新建一个DBConn类,把连接字符串封装到DBConn.cs里面。
第四步:请看代码实现↓↓↓
代码实现:
DBConn.cs
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Data.SqlClient; using System.Data; namespace sixth { class DBConn { //连接字符串 public static string connStr = "Data Source=.;Initial Catalog=repair;Integrated Security=True;Pooling=False"; public static SqlConnection conn = new SqlConnection(connStr); } }
FormLogin.cs
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Data.SqlClient; namespace sixth { public partial class FormLogin : Form { public FormLogin() { InitializeComponent(); } private void btnLogin_Click(object sender, EventArgs e) { try { if (txtUsn.Text.Trim() == "") { labMessage.Text ="用户名不能为空!"; txtUsn.Focus();//获取焦点 return; } else if (txtPwd.Text.Trim() == "") { labMessage.Text ="密码不能为空!"; txtPwd.Focus(); return; } //老师说了:下面这种方法会有通过文本框输入SQL语句来恶意损坏数据库的可能,所以用了参数的形式来获取文本框的值! //string sqlStr = "select userName,passWord from user_info where userName='" + txtUsn.Text.Trim() + "'"; string sqlStr = "select userName,passWord from user_info where userName=@userName"; DataSet ds = new DataSet(); DBConn.conn.ConnectionString = DBConn.connStr; DBConn.conn.Open(); SqlCommand cmd = new SqlCommand(sqlStr, DBConn.conn); cmd.Parameters.Add());//添加参数 cmd.Parameters["@userName"].Value = txtUsn.Text;//把用户名文本框里的东西给@userName SqlDataReader sdr = cmd.ExecuteReader(); if (!sdr.Read())//因为是通过userName查询数据的,所以如果没有读到这条数据,肯定是用户名不存在 { labMessage.Text = "用户名不存在!请重新输入"; txtUsn.Text = "";//文本框置空 txtPwd.Text = ""; txtUsn.Focus(); } else if (sdr["passWord"].ToString().Trim() == txtPwd.Text.Trim()) { labMessage.Text = "恭喜您已成功登录!"; } else { labMessage.Text = "密码错误!请重新输入!"; txtPwd.Text = ""; txtPwd.Focus(); } } catch (Exception ex) { labMessage.Text = "登录异常:" + ex.Message; txtUsn.Text = ""; txtPwd.Text = ""; txtUsn.Focus(); } finally { DBConn.conn.Close();//最重要的是要关闭数据库! } } private void btnCancel_Click(object sender, EventArgs e) { Application.Exit();//退出 } } }
测试:
1.数据库、表格及测试数据
2.成功登录
3.用户名不存在;其实当用户名不存在的时候,是让文本框置空的,这里为了
方便展示
4.密码错误,密码文本框置空,焦点转移至此
PSP耗时分析:
团队编程总结:
一个团队,要做好一个项目,要有十分全面的考虑以及分析。可能一个人并不能把整个项目都考虑的非常到位,所以Team Leader先组织开个小会,以便收集大家的意见。其实这次,大家都挺积极的配合,个别同志由于各种原因大家也都能理解。但我们始终遵循一条原则,多劳多得!
其实这次只是一个开始,但我们一样要按照流程来完成任务,要把开始做到完美,那么后续工作才可以陆续开来。
团队编程之个人总结:
侯贺琦:
这次的作业比较简单,当然,是相对于我们队长来说。他能带动我们完成任务,已经是功不可没。虽然任务简单,但队长仍旧分为几个小任务来交给我们完成,这次的做作业有用到数据库的知识,我数据库是最薄弱的,不得不重拾以前的知识,我面对库时真的是手忙脚乱慌得一塌糊涂,毕竟也是上个学期挂掉数据库的人,然而这并没有什么用,关键时刻还得靠队长,此时队长挺身而出,狂补数据库连接知识,最终将其完成。其实窗体应用挺好的,我喜欢窗体的方方正正。其实怎么说,代码这东西与我无缘,我并不是那么喜欢,大一时的HTML纯属是无聊才学着玩的,也有一点点喜欢在里面,到了大二,其实还是怨自己吧,挺多不会的。张宇同学能带着我们学习真的是挺感动的,我想,他应该是最有可能走这条路的人,愿他能成功。
丁志愿:
经过上次团队合作,我们对这次的作业充满了信心。虽然这次的作业不是很多,但是我们还是按照要求,合理分工,每个成员都把自己的工作做得很到位。
这次的项目虽然只是一个开头,但这是很重要的一步,登录界面。团队中的成员经过上次的项目磨合,这次更加得心应手。每个人都把自己的工作认真完成,
通过一次次的团队模式,我们更加了解了自己,每一次的合作就是一次的成长,不论作业难度如何,我们都会努力做到最好。
经过每次的合作,我们也遇到过很多困难,数据库是上学期的课程,我们在合作过程中,,都在互相帮助,有时会有抱怨,有时会有牢骚,但是在我们的互相
帮助下,都克服了这些难题。每一次的困难都是一个成长路上的考验,经过一次次的考验,我们也会一次次的成长起来。
我相信,经过每次的团队合作,我们会学到更多,要努力克服自己的短处,增加自己的能力。在以后的路上,我们一定会学到更多,也会一步步增加自己的能力。
C#登录窗口及验证(+SQL)的更多相关文章
- WPF:验证登录后关闭登录窗口,显示主窗口的解决方法
http://www.27ba.com/post/145.html WPF:验证登录后关闭登录窗口,显示主窗口的解决方法 最近想做一个基于Socket的通讯工具,想模仿QQ那样,需要先登录,登录成功后 ...
- WPF 先显示登录成功,验证成功后显示主窗口
/// 设置显示登录窗口的方法: /// 在 App.xaml 中把这句 /// 删掉 StartupUri="MainWindow.xaml" 改为 StartupUri=&qu ...
- Servlet页面登录的数据库验证程序(二)
这个程序在原来的程序基础上加入了密码验证. 一.增加一个error.jsp页面,用于跳转出现用户名和密码错误显示信息. <%@ page language="java" im ...
- Servlet页面登录的数据库验证程序(一)
一.基本思想是MVC模式,一个登录页面login.jsp,一个服务器处理程序Servlet.java,一个MySql数据库userinfo. 另外还有相关的数据封装类User和数据库连接类GetDat ...
- QUI操作超时弹出登录窗口登录的处理方式
在使用QUI开发的业务系统中,如果长时间没操作,session过期后,再次操作系统超时会自动跳转到登陆页面,如果当前有一些操作没有保存,需要重新登录后再次填写信息,用户体验很不好! 为了避免超时后页面 ...
- 使用 jQuery Ajax 异步登录,并验证用户输入信息(maven)
使用 jQuery Ajax 异步登录,并验证用户输入信息(maven) 本篇内容: (1)上一篇是使用同步的请求实现登录,并由 Servlet 决定登陆后下一步做哪些事情,本篇使用 jQuery A ...
- C# 登录窗口的设计技巧
记得很久之前要用C#做个需要登录的小东西,自己之前完全没有编写WinForm的经验,整个过程中,自己感觉应该怎么写就怎么写,时常导致许多逻辑性的错误,比如在做这个登录窗口的时候,应该实现的效果是,用户 ...
- Delphi用户登录窗口框架
经常看到一些新手在CSDN上问登录窗口如何写,也看到N多人form1.show/form1.create/…中做form2.show之类.实在看不下去了.这种写法实在不是很好,于是还是把自己理解的登录 ...
- 单点登录(十三)-----实战-----cas4.2.X登录启用mongodb验证方式完整流程
我们在之前的文章中中已经讲到了正确部署运行cas server 和 在cas client中配置. 在此基础上 我们去掉了https的验证,启用了http访问的模式. 单点登录(七)-----实战-- ...
随机推荐
- Java应用程序的打包和发布
Java应用程序的打包和发布 简化Java应用程序的打包和发布 发布Java应用程序时Java提供了一系列打包和发布工具,可以显著的简化发布过程 该文章提供了打包Java code的几种方法,探讨Ja ...
- oracle中dual表的使用
dual表是一个虚拟表,用来和select语句一起使用.1.查看当前用户select user from dual2.用来调用系统函数select to_char(sysdate,'yyyy-mm- ...
- python 三元运算符
print (1==2) and 12 or 4 b=12 if 1==2 else 4print(b)
- Java多线程中的进程,线程,并行,并发
2:什么是进程? 通过任务管理器我们就看到了进程的存在. 而通过观察,我们发现只有运行的程序才会出现进程. 进程:就是正在运行的程序. 进程是系统进行资源分配和调用的独立单位.每一个进程都有它自己的内 ...
- sql 取时间 问题集
一. AND B.TRAFFICE_DATE>dateadd(day,5,(select getdate())) dateadd(day,5,(select getdate())):为当前时间+ ...
- 用R分析时间序列(time series)数据
时间序列(time series)是一系列有序的数据.通常是等时间间隔的采样数据.如果不是等间隔,则一般会标注每个数据点的时间刻度. time series data mining 主要包括decom ...
- javaBean的使用方法;
在jsp页面中使用javaBean:三个标签: <jsp:useBean>标签 <jsp:setProperty>标签 <jsp:getProperty>标签 首先 ...
- 【转】Linus:利用二级指针删除单向链表
原文作者:陈皓 原文链接:http://coolshell.cn/articles/8990.html 感谢网友full_of_bull投递此文(注:此文最初发表在这个这里,我对原文后半段修改了许多, ...
- nyoj CO-PRIME 莫比乌斯反演
CO-PRIME 时间限制:1000 ms | 内存限制:65535 KB 难度:3 描述 This problem is so easy! Can you solve it? You are ...
- Linux下mysql主从配置
mysql服务器的主从配置,这样可以实现读写分离,也可以在主库挂掉后从备用库中恢复需要两台机器,安装mysql,两台机器要在相通的局域网内主机A: 192.168.1.100从机B:192.168.1 ...