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访问的模式. 单点登录(七)-----实战-- ...
随机推荐
- 搭建无限制权限的简单git服务器使用git-daemon脚本
如果想要用ubantu架设无限制权限(即不适用gitosis)的简单git服务器,实现git库下载clone,push等简单的基本功能, 可以直接使用git-daemon脚本(非常不安全,建议项目代码 ...
- 鸟哥的linux私房菜---非常好的linux基础网址【转】
转自:http://linux.vbird.org/linux_basic/0320bash.php 在 Linux 的環境下,如果你不懂 bash 是什麼,那麼其他的東西就不用學了!因為前面幾章我們 ...
- WebService工作原理
1.WebService工作原理-SOAP 当客户端调用一个WebService的方法时,首先将方法名称和需要传递的参数包装成XML,也就是SOAP包,通过HTTP协议传递到服务器端,然后服务器端解析 ...
- IOS 音频开发文件大小计算
音频基础知识 音频文件计算大小 音频转码 标签(空格分隔): 调查 IOS音频 https://developer.apple.com/library/ios/documentation/MusicA ...
- 直接在Chrome里抓取数据
一个小测试发现可以自动做题,于是想通过脚本的方式看能不能获取相应的题库,刚好可以学习一下JS异步操作.花了一天时间,总算跑顺利了,遇到了不少坑.记录下来分享. 1.JS如何顺序执行 JS有强大的异步操 ...
- HDU 4708:Rotation Lock Puzzle
Rotation Lock Puzzle Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Oth ...
- YTU 2335: 0-1背包问题
2335: 0-1背包问题 时间限制: 1 Sec 内存限制: 128 MB 提交: 15 解决: 12 题目描述 试设计一个用回溯法搜索子集空间树的函数.该函数的参数包括结点可行性判定函数和上界 ...
- word中设置前几页为罗马数字,后几页设置为阿拉伯数字
假如第1-5页摘要部分页脚要是罗马数字,第6页开始是正文部分是阿拉伯数字,起始页为1. WORD2003 1.将光标定位在第5页末尾处,在菜单栏中依次点击“插入——分隔符——(分节符类型)下一页”.按 ...
- asp.net c# 打开新页面或页面跳转
1.最常用的页面跳转(原窗口被替代):Response.Redirect("XXX.aspx"); 2.利用url地址打开本地网页或互联网:Respose.Write(" ...
- Check the difficulty of problems
Check the difficulty of problems Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 5830 Acc ...