编程环境:SQL Server 2019
Visual Studio 2019
(仅功能代码)
- 登陆
private void button2_Click(object sender, EventArgs e) //登陆
{
string username = textBoxUserName.Text.Trim(); //取出账号
string password = EncryptWithMD5(textBoxPassWord.Text.Trim()); //取出密码
name = username;
//string connstr = ConfigurationManager.ConnectionStrings["connectionString"].ToString(); //读取连接字符串
string myConnString = "Data Source=.;Initial Catalog=Text;Persist Security Info=True;User ID=sa;Password=110023"; //连接字符串 Data source为服务器的名字 Text为连接的库
SqlConnection sqlConnection = new SqlConnection(myConnString); //实例化连接对象
sqlConnection.Open();
string sql = "select UserID,UserPassword from UserMessage where UserID = '" + username + "' and UserPassword = '" + password + "'"; //编写SQL命令
SqlCommand sqlCommand = new SqlCommand(sql, sqlConnection);
SqlDataReader sqlDataReader = sqlCommand.ExecuteReader();
string select_by_id="select * from UserMessage where UserID='" + username+"'";
if (sqlDataReader.HasRows && radioButton1.Checked && txtVerifyCode.Text.Equals(VerifyCode, StringComparison.OrdinalIgnoreCase)) //学生成功登录
{
MessageBox.Show("欢迎使用!"); //登录成功
FormStudent formstudent = new FormStudent();
formstudent.Show();
//this.Hide();
}
if (sqlDataReader.HasRows && radioButton2.Checked && txtVerifyCode.Text.Equals(VerifyCode, StringComparison.OrdinalIgnoreCase)) //管理员成功登录
{
MessageBox.Show("欢迎使用!"); //登录成功
FormAdmini formAdmini = new FormAdmini();
formAdmini.Show();
// this.Hide();
}
if (textBoxUserName.Text.Trim() == "")
{
MessageBox.Show("请输入学号/工号!");
}
if (textBoxPassWord.Text.Trim() == "")
{
MessageBox.Show("请输入密码!");
}
//验证码
if (string.IsNullOrEmpty(txtVerifyCode.Text))
{
MessageBox.Show("请输入验证码!");
return;
}
if (sqlDataReader.HasRows )
{
//label1.Text = "Log in :" + username;
if (txtVerifyCode.Text.Equals(VerifyCode, StringComparison.OrdinalIgnoreCase))
{
label1.Text = "Log in :" + username;
}
else
{
MessageBox.Show("验证码错误!请重新输入!");
}
}
else if(!sqlDataReader.Read() && textBoxPassWord.Text.Trim() !="" && textBoxUserName.Text.Trim() != "")
{
MessageBox.Show("密码输入错误!", "notice", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
sqlConnection.Close();
}
验证码
private string MakeCode(int codeLen)
{
if (codeLen < 1)
{
return string.Empty;
}
int number;
string checkCode = string.Empty;
Random random = new Random();
for (int index = 0; index < codeLen; index++)
{
number = random.Next();
if (number % 2 == 0)
{
checkCode += (char)('0' + (char)(number % 10)); //生成数字
}
else
{
checkCode += (char)('A' + (char)(number % 26)); //生成字母
}
}
return checkCode;
}
private Image CreateCodeImg(string checkCode)
{
if (string.IsNullOrEmpty(checkCode))
{
return null;
}
Bitmap image = new Bitmap((int)Math.Ceiling((checkCode.Length * 12.5)), 22);
Graphics graphic = Graphics.FromImage(image);
try
{
Random random = new Random();
graphic.Clear(Color.White);
int x1 = 0, y1 = 0, x2 = 0, y2 = 0;
for (int index = 0; index < 25; index++)
{
x1 = random.Next(image.Width);
x2 = random.Next(image.Width);
y1 = random.Next(image.Height);
y2 = random.Next(image.Height);
graphic.DrawLine(new Pen(Color.Silver), x1, y1, x2, y2);
}
Font font = new Font("Arial", 12, (FontStyle.Bold | FontStyle.Italic));
LinearGradientBrush brush = new LinearGradientBrush(new Rectangle(0, 0, image.Width, image.Height), Color.Red, Color.DarkRed, 1.2f, true);
graphic.DrawString(checkCode, font, brush, 2, 2);
int x = 0;
int y = 0;
//画图片的前景噪音点
for (int i = 0; i < 100; i++)
{
x = random.Next(image.Width);
y = random.Next(image.Height);
image.SetPixel(x, y, Color.FromArgb(random.Next()));
}
//画图片的边框线
graphic.DrawRectangle(new Pen(Color.Silver), 0, 0, image.Width - 1, image.Height - 1);
return image;
}
finally
{
graphic.Dispose();
}
}
private void pictureBox1_Click(object sender, EventArgs e)
{
VerifyCode = MakeCode(5);
pictureBox1.Image = CreateCodeImg(VerifyCode);
}
密码加密
public static string EncryptWithMD5(string source) //MD5加密
{
byte[] sor = Encoding.UTF8.GetBytes(source);
MD5 md5 = MD5.Create();
byte[] result = md5.ComputeHash(sor);
StringBuilder strbul = new StringBuilder(40);
for (int i = 0; i < result.Length; i++)
{
strbul.Append(result[i].ToString("x2"));//加密结果"x2"结果为32位,"x3"结果为48位,"x4"结果为64位
}
return strbul.ToString();
}
- 注册
private void buttonOK_Click(object sender, EventArgs e)//注册成功
{
try
{
string connString = "Data Source =.; Initial Catalog = Text; Persist Security Info = True;User ID = sa; Password =110023";//数据库连接字符串
SqlConnection connection = new SqlConnection(connString);//创建connection对象
string sql = "insert into UserMessage (UserName, UserID , UserPassword, UserIdentity ,UserSex, UserNumber ,UserBirthday ,UserPhoto ) " +
"values (@username, @userid, @userpassword,@useridentity,@usersex,@usernumber,@userbirthday,@userphoto)";
SqlCommand command = new SqlCommand(sql, connection);
SqlParameter sqlParameter = new SqlParameter("@userid", textBoxNum.Text);
command.Parameters.Add(sqlParameter);
sqlParameter = new SqlParameter("@username", textBoxName.Text);
command.Parameters.Add(sqlParameter);
sqlParameter = new SqlParameter("@userpassword", EncryptWithMD5(textBoxPassword.Text));
command.Parameters.Add(sqlParameter);
sqlParameter = new SqlParameter("@usersex", comboBoxsex.Text);
command.Parameters.Add(sqlParameter);
sqlParameter = new SqlParameter("@usernumber", textBoxNumber.Text);
command.Parameters.Add(sqlParameter);
sqlParameter = new SqlParameter("@userbirthday"