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("用户名不存在"); } } } } } } }