说到用户界面,大家用的QQ,微信什么的都已经看过很多了吧,而一个简单的用户登陆系统包含以下内容,用户的注册,用户的登陆,用户对应密码的修改,以及相关数据的查询。而在前面我们已经介绍过SQL的基本语言,下面我们就要通过SQL语言与C#来编写一个简单的登陆系统,由于设计的东西比较多,小编没有办法一次性更晚,所以小编通过几篇教程将这个登陆系统更新完毕。
那么作为第一讲,小编先为大家讲述第一个界面,也就是登陆界面。
首先通过使用txtbox和label来画出以上的界面。编程方面我们可以这么考虑,我们先将用户名与密码存入到数据库里,通过提取txtbox控件里面的文字,来和数据库里面的内容进行比较,如果一致,咱们就显示用户登陆成功,并显示登陆进去以后的页面。如果不相同,那么就说用户登陆失败,你还有几次登陆的机会,如果用户登陆失败次数过多,那么咱们就将这个页面直接关闭好了。(或者考虑触发一个timer控件,让他一点时间内登陆不上去)
注:为了方便用户注册,我们在右侧设计了注册账号按钮。
下面上程序:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.SqlClient;
namespace WindowsFormsApplication2
{
public partial class Form1 : Form
{
int errortime = 3;//这里设计这个东西是为记录用户的登陆次数,检测其是不是为零。
public Form1()
{
InitializeComponent();
checkCode.Text = "";
}
private void button1_Click(object sender, EventArgs e)//这就是传说中的登陆按钮
{
errortime = errortime - 1;//按下去你的可登陆次数就会减一
string username = txtname.Text;//提取对应的txtbox里面的内容
string pwd = txtpwd.Text;//提取对应的txtbox里面的内容
string constr = "Server=.;Database=test;Trusted_Connection=SSPI";//连接数据库以前讲过啦
SqlConnection mycon = new SqlConnection(constr);
mycon.Open();
string sl = "select account,password from username where account='" + username + "'and password='"+ pwd +"'";//这里我们需要将用户名与密码与数据库里存储的用户名与密码做对比
SqlDataAdapter myda = new SqlDataAdapter(sl,"Server=.;Database=test;Trusted_Connection=SSPI");
DataSet myds = new DataSet();
int n=myda.Fill(myds,"register");//这里是为了得到一个返回值,如果返回数值步为零,则说明数据库里有这个数值,如果返回值为零则说明数据库里没有对应的用户名与密码,用户登陆失败
if (n != 0)
{
if (checkCode.Text.Trim()== ""|| checkCode.Text == null)//判断用户有没有输入正确的验证码
{
MessageBox.Show("请输入验证码");
}
else if (checkCode.Text == textcheck.Text)
{
MessageBox.Show("欢迎使用!");
this.Hide();//隐藏当前页面
Form3 f3 = new Form3();
Form4 f4 = new Form4();
f3.GetFrom1Msg(this.txtname.Text);//这个是为了传递字段用的,第一次编程可以不写,但是在第三次教程中会用到,在这里算是提前剧透,这个字段的作用是将txtbox里面的内容从form1传递到form3
f3.Show();//显示管理页面
}
else
{
MessageBox.Show("验证码错误!");
}
}
else
{
if (errortime 0)//首先判断下用户还有没有机会再次输用户名与密码
{
MessageBox.Show("用户名或者密码有错误。请重新输入!" + errortime.ToString() + "次机会");//告诉电脑前的小子还有几次
txtname.Text = "";//为用户清空txtbox里的内容
txtpwd.Text = "";//为用户清空txtbox里的内容
txtname.Focus();
}
else
{
MessageBox.Show("你所输入的用户名和密码已经达到三次。程序将推出");
this.Close();//下面让我们把这个东西关了吧
}
}
}
private void checkCode_Click(object sender, EventArgs e)//这个东西是为了生成验证码,不过这次写的简单,毕竟当时没有想着加这个东西,逻辑上还有不合理的东西,所以大家就看看好了
{
Random random = new Random();//声明
int minv = 12345, maxv = 98765;//定义数值的最大值与最小数值
checkCode.Text = random.Next(minv, maxv).ToString();//生成随机数
}
private void button2_Click(object sender, EventArgs e)
{
Application.Exit();//点击取消按钮以后退出程序
}
private void button3_Click(object sender, EventArgs e)
{
Form2 f2= new Form2();
f2.Show();//点击用户注册按钮以后,不关闭当前页面,同时打开新页面form2.
}
private void txtname_TextChanged(object sender, EventArgs e)
{
}
private void Form1_Load(object sender, EventArgs e)
{
}
}
}
对应数据的布局,建立的方法前面教程已经教过了。
登陆页面
登陆成功
显示管理页面
登陆失败的情况
注册按钮
本次教程到次结束,需要注意的是,用户如果想要登陆上去,你需要提前把用户名与密码写入到数据库里,没办法,谁叫咱们没有用户注册。
领取专属 10元无门槛券
私享最新 技术干货