登录程序(输入错误十五秒后才能再次输入)
2012-02-22 10:01
204 查看
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;
using System.Configuration;
namespace Login
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
//string strcon = string.Empty;
string strcon = ConfigurationManager.ConnectionStrings["sqlcon"].ConnectionString;
int errorcount = 0;
private void denglu_Click(object sender, EventArgs e)
{
SqlConnection sqlcnn = new SqlConnection(strcon);
sqlcnn.Open();
SqlCommand sqlcmm = sqlcnn.CreateCommand();
sqlcmm.CommandText = "select * from Login where UserName=@username andPassword=@password";
sqlcmm.Parameters.AddWithValue("@username", TxtName.Text);
sqlcmm.Parameters.AddWithValue("@password",TxtPassword.Text);
SqlDataAdapter adapter = new SqlDataAdapter(sqlcmm);
DataTable table = new DataTable();
adapter.Fill(table);
errorcount = GetError();
if (errorcount>=3)
{
int secondspan = GetErrorTime1();
if (secondspan<15)
{
MessageBox.Show("您已经连续输入三次错误密码了,请15秒后再登录!");
return;
}
}
if (table.Rows.Count<=0)
{
errorcount++;
UpdateError(errorcount);
UpdateErrorTime();
MessageBox.Show("登录失败!");
}
else if (table.Rows.Count==1)
{
errorcount = 0;
UpdateError(errorcount);
MessageBox.Show("登录成功!");
}
else
{
MessageBox.Show("系统有重复数据!");
}
sqlcmm.Dispose();
sqlcnn.Dispose();
}
private int GetError()
{
SqlConnection sqlcon = new SqlConnection(strcon);
sqlcon.Open();
SqlCommand sqlcmm = sqlcon.CreateCommand();
sqlcmm.CommandText = "select Error from Login where UserName=@username";
sqlcmm.Parameters.AddWithValue("@username", TxtName.Text);
object obj = sqlcmm.ExecuteScalar();
if (DBNull.Value.Equals(obj)==true)
{
return 0;
}
else
{
return Convert.ToInt32(obj);
}
}//获取错误次数
private void UpdateError(int errorcount)
{
SqlConnection sqlcon = new SqlConnection(strcon);
sqlcon.Open();
SqlCommand sqlcmm = sqlcon.CreateCommand();
sqlcmm.CommandText = "update Login set Error=@error whereUserName=@username";
sqlcmm.Parameters.AddWithValue("@username",TxtName.Text);
sqlcmm.Parameters.AddWithValue("@error",errorcount);
sqlcmm.ExecuteNonQuery();
}//更新错误次数
private void UpdateErrorTime()
{
SqlConnection conn = new SqlConnection(strcon);
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
conn.Open();
cmd.CommandText = "update Login set ErrorTime=@errortime whereUserName=@username";
cmd.Parameters.AddWithValue("@username",TxtName.Text);
cmd.Parameters.AddWithValue("@errortime",DateTime.Now);
cmd.ExecuteNonQuery();
}//更改错误时的时间
private int GetErrorTime1()
{
SqlConnection conn = new SqlConnection(strcon);
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
conn.Open();
cmd.CommandText = "select DATEDIFF([second],ErrorTime,getdate()) from Login whereUserName=@username";
//DATEDIFF([second],ErrorTime,getdate()) 求时间差
cmd.Parameters.AddWithValue("@username",this.TxtName.Text);
object obj = cmd.ExecuteScalar();
if (DBNull.Value.Equals(obj)==true)
{
return 0;
}
else
{
return Convert.ToInt32(obj);
}
}//获取时间间隔
}
}
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;
using System.Configuration;
namespace Login
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
//string strcon = string.Empty;
string strcon = ConfigurationManager.ConnectionStrings["sqlcon"].ConnectionString;
int errorcount = 0;
private void denglu_Click(object sender, EventArgs e)
{
SqlConnection sqlcnn = new SqlConnection(strcon);
sqlcnn.Open();
SqlCommand sqlcmm = sqlcnn.CreateCommand();
sqlcmm.CommandText = "select * from Login where UserName=@username andPassword=@password";
sqlcmm.Parameters.AddWithValue("@username", TxtName.Text);
sqlcmm.Parameters.AddWithValue("@password",TxtPassword.Text);
SqlDataAdapter adapter = new SqlDataAdapter(sqlcmm);
DataTable table = new DataTable();
adapter.Fill(table);
errorcount = GetError();
if (errorcount>=3)
{
int secondspan = GetErrorTime1();
if (secondspan<15)
{
MessageBox.Show("您已经连续输入三次错误密码了,请15秒后再登录!");
return;
}
}
if (table.Rows.Count<=0)
{
errorcount++;
UpdateError(errorcount);
UpdateErrorTime();
MessageBox.Show("登录失败!");
}
else if (table.Rows.Count==1)
{
errorcount = 0;
UpdateError(errorcount);
MessageBox.Show("登录成功!");
}
else
{
MessageBox.Show("系统有重复数据!");
}
sqlcmm.Dispose();
sqlcnn.Dispose();
}
private int GetError()
{
SqlConnection sqlcon = new SqlConnection(strcon);
sqlcon.Open();
SqlCommand sqlcmm = sqlcon.CreateCommand();
sqlcmm.CommandText = "select Error from Login where UserName=@username";
sqlcmm.Parameters.AddWithValue("@username", TxtName.Text);
object obj = sqlcmm.ExecuteScalar();
if (DBNull.Value.Equals(obj)==true)
{
return 0;
}
else
{
return Convert.ToInt32(obj);
}
}//获取错误次数
private void UpdateError(int errorcount)
{
SqlConnection sqlcon = new SqlConnection(strcon);
sqlcon.Open();
SqlCommand sqlcmm = sqlcon.CreateCommand();
sqlcmm.CommandText = "update Login set Error=@error whereUserName=@username";
sqlcmm.Parameters.AddWithValue("@username",TxtName.Text);
sqlcmm.Parameters.AddWithValue("@error",errorcount);
sqlcmm.ExecuteNonQuery();
}//更新错误次数
private void UpdateErrorTime()
{
SqlConnection conn = new SqlConnection(strcon);
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
conn.Open();
cmd.CommandText = "update Login set ErrorTime=@errortime whereUserName=@username";
cmd.Parameters.AddWithValue("@username",TxtName.Text);
cmd.Parameters.AddWithValue("@errortime",DateTime.Now);
cmd.ExecuteNonQuery();
}//更改错误时的时间
private int GetErrorTime1()
{
SqlConnection conn = new SqlConnection(strcon);
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
conn.Open();
cmd.CommandText = "select DATEDIFF([second],ErrorTime,getdate()) from Login whereUserName=@username";
//DATEDIFF([second],ErrorTime,getdate()) 求时间差
cmd.Parameters.AddWithValue("@username",this.TxtName.Text);
object obj = cmd.ExecuteScalar();
if (DBNull.Value.Equals(obj)==true)
{
return 0;
}
else
{
return Convert.ToInt32(obj);
}
}//获取时间间隔
}
}
相关文章推荐
- 登录程序(输入错误十五秒后才能再次输入)
- 模拟用户登录情景,并且只能登录三次。(只允许输入三次密码,如果密码正确则提示登录成功,如果三次均输入错误,则退出程序)
- 登录安全性 一天内连续输入密码错误3次,第二天才能登录(过了当天凌晨24点),实现原理
- 安全登录一天内连续输入密码错误3次,第二天才能登录
- 连续输入密码错误3次,第二天才能登录
- Sqlplus登录时出现无法定位程序输入点longjmp于动态链接库的错误提示
- 连续输入密码错误3次,第二天才能登录
- 连续输入密码错误3次,第二天才能登录
- 登录安全性 一天内连续输入密码错误3次,第二天才能登录(过了当天凌晨24点),实现原理
- 连续输入密码错误3次,第二天才能登录
- 连续输入密码错误3次,第二天才能登录
- 编写代码实现,模拟用户登录情景,并且只能登录三次,只允许输入三次密码,如果密码正确则提示登录成功,如果三次均输入错误,则退出程序。
- 模拟用户登录情景,并且只能登录三次,只允许输入三次密码,如果密码正确则提示登录成功,如果密码三次均错误,则退出程序。
- 为什么有时候要两次 Ctrl+Z 才能结束输入 编写程序时 ctrl+z的错误
- 编写代码模拟三次密码输入的场景。 最多能输入三次密码,密码正确,提示“登录成功”,密码错误,可以重新输入,最多输入三次。三次均错,则提示退出程序。
- 编写代码实现,模拟用户登录情景,并且只能登录三次。 只允许输入三次密码,如果密码正确则提示登录成,如果三次均输入错误,则退出程序。
- .编写代码模拟三次密码输入的场景。 最多能输入三次密码,密码正确,提示“登录成功”,密码错误,可以重新输入,最多输入三次。三次均错,则提示退出程序。(细节提示)
- 编写代码模拟三次密码输入的场景。 最多能输入三次密码,密码正确,提示“登录成功”,密码错误,可以重新输入,最多输入三次。三次均错,则提示退出程序
- 控制台程序模拟登录--C#(三次输入错误程序关闭)
- 编写代码模拟三次密码输入的场景。最多能输入三次密码,密码正确,提示“登录成功”, 密码错误,可以重新输入,最多输入三次。三次均错,则提示退出程序。