今天有完善了登录,可以在后台查找、添加用户,当用户输错三次后在管理员的帮助下,可以解锁,或者等15秒后自动解锁。
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.Configuration;
using System.Data.SqlClient;
namespace 用户登录第一版
{
public partial class Manager : Form
{
public Manager()
{
InitializeComponent();
}
private void btnQuery_Click(object sender, EventArgs e)
{
NewChazhao();
}
private void NewChazhao()
{
string strcon = ConfigurationManager.ConnectionStrings["sqlserver2008"].ConnectionString;
SqlConnection conn = new SqlConnection(strcon);
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
conn.Open();
string sqlstr = "select A.UserId,A.UserName,B.Name,B.Sfzh,B.Tell,B.Address,B.Age,(case B.General when 1 then '男' when 0 then '女' end) from T_User A LEFT OUTER JOIN T_UserInfo B on A.UserId=B.UserId where ";
string sqlwhere = ReturnSqlWhere(cmd);
//拼接sql语句
cmd.CommandText = sqlstr + sqlwhere;
SqlDataAdapter adapter = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
adapter.Fill(dt);
if (dt.Rows.Count > 0)
{
this.dataGridView1.DataSource = dt;
}
else
{
MessageBox.Show("您查询的数据不存在");
}
}
//返回动态生成的where子句
private string ReturnSqlWhere(SqlCommand cmd)
{
string sqlwhere = string.Empty;
switch (cmbselect.Text)
{
case "姓名":
sqlwhere = "B.Name like @name";
cmd.Parameters.AddWithValue("@name", "%" + txtcontent.Text + "%");
break;
case "用户名":
sqlwhere = "A.UserName like @username";
cmd.Parameters.AddWithValue("@username", "%" + txtcontent.Text + "%");
break;
case "电话":
sqlwhere = "B.Tell like @tell"; cmd.Parameters.AddWithValue("@tell", "%" + txtcontent.Text + "%");
break;
case "地址":
sqlwhere = "B.Address like @address";
cmd.Parameters.AddWithValue("@address", "%" + txtcontent.Text + "%");
break;
default:
sqlwhere = "B.Sfzh like @sfzh";
cmd.Parameters.AddWithValue("@sfzh", "%" + txtcontent.Text + "%");
break;
}
return sqlwhere;
}
private void btnAdd_Click(object sender, EventArgs e)
{
Form f1 = new Add();
f1.Show();
}
private void btnunlock_Click(object sender, EventArgs e)
{
string strcon = ConfigurationManager.ConnectionStrings["sqlserver2008"].ConnectionString;
SqlConnection conn = new SqlConnection(strcon);
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
conn.Open();
int id = Convert.ToInt32(this.dataGridView1.SelectedCells[0].Value);
cmd.CommandText = "update T_User set Error=0 where UserId=@userid";
cmd.Parameters.AddWithValue("@userid", id);
if (cmd.ExecuteNonQuery() > 0)
{
MessageBox.Show("解锁成功");
}
else
{
MessageBox.Show("解锁失败");
}
}
private void btnfresh_Click(object sender, EventArgs e)
{
string strcon = ConfigurationManager.ConnectionStrings["sqlserver2008"].ConnectionString;
SqlConnection conn = new SqlConnection(strcon);
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
conn.Open();
string sqlstr = "select A.UserId,A.UserName,A.Error,B.Name,isnull(B.Sfzh,'还未填写')Sfzh,B.Tell,B.Address,B.Age,(case B.General when 1 then '男' when 0 then '女' end)性别 from T_User A LEFT OUTER JOIN T_UserInfo B on A.UserId=B.UserId where ";
string sqlwhere = ReturnSqlWhere(cmd);
//拼接sql语句...
cmd.CommandText = sqlstr + sqlwhere;
SqlDataAdapter adapter = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
adapter.Fill(dt);
if (dt.Rows.Count > 0)
{
this.dataGridView1.DataSource = dt;
MessageBox.Show("数据已刷新!");
}
else
{
MessageBox.Show("刷新失败!");
}
}
}
}
统计数字出现次数:
textBox2.Text = "";
ArrayList list = new ArrayList();
int Num = 0;
foreach (var item in textBox1.Text.Trim())
{
if (!list.Contains(item))
{
list.Add(item);
Num = 0;
foreach (var z in textBox1.Text.Trim())
{
if (item.ToString() == z.ToString())
{
Num++;
}
}
textBox2.Text += item.ToString() + "," + Num.ToString() + "次?" + "\r\n";
}
}