ADO.NE练习笔记(登录)

 

ADO.NET 初级登录代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;

namespace OneDay4
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("请输入用户名:");
string username = Console.ReadLine();
Console.WriteLine("请输入密码:");
string password = Console.ReadLine();


using (SqlConnection conn = new SqlConnection(@"Data Source=.\sqlexpress;attachDBFilename=|DataDirectory|\Database1.mdf;Integrated Security=True;User Instance=True"))
{
conn.Open();


using(SqlCommand cmd=conn.CreateCommand())
{
cmd.CommandText="select * from T_Users where UserName='"+username+"'";//
using(SqlDataReader reader=cmd.ExecuteReader())
{
if (reader.Read())
{
string dbpassword = reader.GetString(reader.GetOrdinal("PassWord"));//在给定列名称的情况下获取列序号
if (password == dbpassword)
{ Console.WriteLine("登陆成功!"); }
else
{ Console.WriteLine("密码错误!登录失败"); }
}
else
{ Console.WriteLine("用户名错误"); }
}
}
}
Console.WriteLine("ok");
Console.ReadKey();

}
}
}


ADO.NET  登录WinForm练习代码:

namespace winformExa1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

//将错误次数变为零
public void ResetErrorTimes()
{
using (SqlConnection conn = new SqlConnection(@"Data Source=.\sqlexpress;attachDBFilename=|DataDirectory|\Database2.mdf;Integrated Security=True;User Instance=True"))
{
conn.Open();
using (SqlCommand cmd = conn.CreateCommand())
{
cmd.CommandText = "update T_Users set ErrorTimes=0 where UserName=@UserName";
cmd.Parameters.Add(new SqlParameter("UserName", textBox1.Text));
cmd.ExecuteNonQuery();

}
}
}

//将错误次数加一

public void IncErrorTimes()
{
using (SqlConnection conn = new SqlConnection(@"Data Source=.\sqlexpress;attachDBFilename=|DataDirectory|\Database2.mdf;Integrated Security=True;User Instance=True"))
{
conn.Open();
using (SqlCommand cmd = conn.CreateCommand())
{
cmd.CommandText = "update T_Users set ErrorTimes=ErrorTimes+1 where UserName=@UserName";
cmd.Parameters.Add(new SqlParameter("UserName", textBox1.Text));
cmd.ExecuteNonQuery();

}
}
}
private void button1_Click(object sender, EventArgs e)
{
using (SqlConnection conn = new SqlConnection(@"Data Source=.\sqlexpress;attachDBFilename=|DataDirectory|\Database2.mdf;Integrated Security=True;User Instance=True"))
{
conn.Open();
using (SqlCommand cmd = conn.CreateCommand())
{
cmd.CommandText = "select * from T_Users where UserName=@UserName";//
cmd.Parameters.Add(new SqlParameter("UserName", textBox1.Text));
using (SqlDataReader reader = cmd.ExecuteReader())
{
if (reader.Read())
{
int errorTimes = reader.GetInt32(reader.GetOrdinal("ErrorTimes"));//防sql注入漏洞攻击,参数化查询
if (errorTimes > 3)
{
MessageBox.Show("登录错误次数太多,禁止登录");
return;
}
string dbpassword = reader.GetString(reader.GetOrdinal("PassWord"));
if (dbpassword == textBox2.Text)
{
MessageBox.Show("登陆成功");
ResetErrorTimes();
} 
else
{
IncErrorTimes();

MessageBox.Show("登录失败");
}

}
else
{
MessageBox.Show("用户名不存在");
}
}
}
}
}
}
}

 

转载于:https://www.cnblogs.com/cizon/archive/2012/05/11/2495444.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值