c++实现登录注册功能(用Javaweb制作登录注册页面)

这两天c#大作业要求做一个简单的通讯录系统,我就先做了登录和注册的功能,在网上看了一些代码,自己再做,终于做出来了。做的不是很美观,但是可以简单实现。首先用sqlserver建表。我建了一个名为user_info的表,添加username和passdword两个字段。创建登录页面,改了一些控件的名称,效果如下图:登录界面代码如下:privatevoidbtn_Login…

大家好,又见面了,我是你们的朋友全栈君。

      这两天c#大作业要求做一个简单的通讯录系统,我就先做了登录和注册的功能,在网上看了一些代码,自己再做,终于做出来了。做的不是很美观,但是可以简单实现。

    首先用sqlserver建表。我建了一个名为user_info的表,添加username和passdword两个字段。

c++实现登录注册功能(用Javaweb制作登录注册页面)

创建登录页面,改了一些控件的名称,效果如下图:

c++实现登录注册功能(用Javaweb制作登录注册页面)

c++实现登录注册功能(用Javaweb制作登录注册页面)

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();
            }
            
        
        }

在学校大部分只是学习理论,实践比较少,难得有机会可以动手做一下,虽然刚开始觉得一些东西不知道怎么用,也不知道怎么去写,查一些书,看一些别人的代码,照着写一写,认真理解,最后就能做出来,收获也挺大的。

 

 
 

 

 

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/129325.html原文链接:https://javaforall.net

(0)
上一篇 2022年4月15日 上午10:00
下一篇 2022年4月15日 上午10:00


相关推荐

  • mysql COALESCE函数

    mysql COALESCE函数COALESCE value 是一个可变参函数 可以使用多个参数 作用 接受多个参数 返回第一个不为 NULL 的参数 如果所有参数都为 NULL 此函数返回 NULL 当它使用 2 个参数时 和 IFNULL 函数作用相同 使用示例 SELECTIFNULL NULL test testSELECTIF wang test wangSELECTCO

    2026年3月19日
    2
  • 解决TimeWait过多的问题

    解决TimeWait过多的问题原文链接:https://www.tiejiang.org/27040.html1、time_wait的作用:TIME_WAIT状态存在的理由:1)可靠地实现TCP全双工连接的终止在进行关闭连接四次挥手协议时,最后的ACK是由主动关闭端发出的,如果这个最终的ACK丢失,服务器将重发最终的FIN,因此客户端必须维护状态信息允许它重发最终的ACK。如果不维持这个状态信息,那么客户端将响应RST分节,服务器将此分节解释成一个错误(在java中会抛出connectionreset的SocketExc

    2022年6月10日
    47
  • git只提交修改部分的代码

    git只提交修改部分的代码gitstatus 查看当前更改的代码 Onbranchmast origin master Changestobec nbsp use gitresetHEAD lt file gt tounstage nbsp nbsp nbsp nbsp modified nbsp nbsp odin code pom

    2026年3月17日
    2
  • Throw和Throws的区别

    Throw和Throws的区别Throw 作用在方法内 表示抛出具体异常 由方法体内的语句处理 具体向外抛出的动作 所以它抛出的是一个异常实体类 若执行了 Throw 一定是抛出了某种异常 Throws 作用在方法的声明上 表示如果抛出异常 则由该方法的调用者来进行异常处理 主要的声明这个方法会抛出会抛出某种类型的异常 让它的使用者知道捕获异常的类型 出现异常是一种可能性 但不一定会发生异常 实例 vo

    2026年3月19日
    2
  • Android 使用substring截取字符串

    Android 使用substring截取字符串请看如下代码://截取第一个字符StringNumOne=”A01013″.substring(0,1);//截取第一个字符之后的所有字符StringLastData=”A01013″.substring(1);StringNumOne1=”你好!”.substring(0,2);StringLastDataNew=LastData.replaceAll(“(.{1})”,”$1-“);//加入’-‘符.

    2022年5月23日
    36
  • 决策树算法原理及案例「建议收藏」

    决策树算法原理及案例「建议收藏」机器学习在各个领域都有广泛的应用,特别在数据分析领域有着深远的影响。决策树是机器学习中最基础且应用最广泛的算法模型。本文介绍了机器学习的相关概念、常见的算法分类和决策树模型及应用。通过一个决策树案例,着重从特征选择、剪枝等方面描述决策树的构建,讨论并研究决策树模型评估准则。最后基于R语言和SPSSModeler这两个工具,分别设计与实现了决策树模型的应用实例。1.机器学习概念

    2022年4月18日
    72

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号