大家好,又见面了,我是你们的朋友全栈君。
这两天c#大作业要求做一个简单的通讯录系统,我就先做了登录和注册的功能,在网上看了一些代码,自己再做,终于做出来了。做的不是很美观,但是可以简单实现。
首先用sqlserver建表。我建了一个名为user_info的表,添加username和passdword两个字段。
创建登录页面,改了一些控件的名称,效果如下图:
MyMeans是一个公共类,之前一直忘记写上了,现在加上。
MyMeans.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data;
using System.Data.SqlClient;
using System.Windows.Forms;
namespace 通讯录连接数据库
{
class MyMeans
{
//连接字符串,后面字符串SQL SERVER中的连接属性中可以找到。
public static string connStr = @"Data Source=DESKTOP-LK27AO7;Initial Catalog = TXL; Integrated Security = True";
public static SqlConnection conn = new SqlConnection(connStr);
}
}
登录界面代码如下:
private void btn_Login_Click(object sender, EventArgs e)
{
try
{
if (txtUsn.Text.Trim() == "")
{
labMessage.Text = "用户名不能为空";
txtUsn.Focus();
return;
}
else if (txtPwd.Text.Trim() == "")
{
labMessage.Text = "密码不能为空!";
txtPwd.Focus();
return;
}
string sqlStr = "select username,passdword from user_info where username=@username";
DataSet ds = new DataSet();
MyMeans.conn.ConnectionString = MyMeans.connStr;
MyMeans.conn.Open();
SqlCommand cmd = new SqlCommand(sqlStr, MyMeans.conn);
cmd.Parameters.Add(new SqlParameter("@username", SqlDbType.VarChar, 50));
cmd.Parameters["@username"].Value = txtUsn.Text;
SqlDataReader sdr = cmd.ExecuteReader();
if (!sdr.Read())
{
labMessage.Text = "用户名不存在!请重新输入";
txtUsn.Text = "";
txtPwd.Text = "";
txtUsn.Focus();
}
else if (sdr["passdword"].ToString().Trim() == txtPwd.Text.Trim())
{
MessageBox.Show("恭喜您已成功登录", "确定",MessageBoxButtons.OK,MessageBoxIcon.Asterisk);
F_AddressList faddlistfrm = new F_AddressList();
faddlistfrm.ShowDialog();
}
else
{
labMessage.Text = "密码错误!请重新输入!";
txtUsn.Text = "";
txtPwd.Text = "";
}
}
注册界面代码如下:
private void button1_Click(object sender, EventArgs e)
{
if(txt_username.Text=="")
{
MessageBox.Show("用户名不能为空!");
}
if(txt_pwd.Text=="")
{
MessageBox.Show("密码不能为空!");
}
if(txt_pwd2.Text=="")
{
MessageBox.Show("确认密码不能为空!");
}
if(txt_pwd.Text!=txt_pwd2.Text)
{
MessageBox.Show("密码和确认密码不相符!");
txt_pwd.Text= "";
txt_pwd2.Text = "";
}
try
{
string sql = string.Format("select count(*) from user_info where username='{0}'", txt_username.Text);
SqlCommand cmd = new SqlCommand(sql, MyMeans.conn);
MyMeans.conn.Open();
int a = (int)cmd.ExecuteScalar();//返回一个值,看用户是否存在
StringBuilder strsql = new StringBuilder();
if (a==0)
{
strsql.Append("insert into user_info(username,passdword)");
strsql.Append("values(");
strsql.Append("'" + txt_username.Text.Trim().ToString() + "',");
strsql.Append("'" + txt_pwd.Text.Trim().ToString() + "'");
strsql.Append(")");
using (SqlCommand cmd2 = new SqlCommand(strsql.ToString(), MyMeans.conn))
{
cmd2.ExecuteNonQuery();
}
MessageBox.Show("注册成功!", "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
this.Close();
}
else
{
MessageBox.Show("用户已存在!", "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
this.Close();
}
}
catch(Exception ex)
{
MessageBox.Show(ex.ToString());
Application.Exit();
}
finally
{
MyMeans.conn.Close();
MyMeans.conn.Dispose();
}
}
在学校大部分只是学习理论,实践比较少,难得有机会可以动手做一下,虽然刚开始觉得一些东西不知道怎么用,也不知道怎么去写,查一些书,看一些别人的代码,照着写一写,认真理解,最后就能做出来,收获也挺大的。
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/129325.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...