用c#实现简单的登录和注册功能

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

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

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

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

用c#实现简单的登录和注册功能

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

用c#实现简单的登录和注册功能

用c#实现简单的登录和注册功能

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/172134.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • javah的使用[通俗易懂]

    javah的使用[通俗易懂]原文链接:http://blog.csdn.net/zgyulongfei/article/details/74371761.无包名的类例如D:\MyTest目录下有一个Test.class文件。那么要生成.h文件,则在控制台下切换到D:\MyTest目录下,然后输入javah-jni Test之后即可在D:\MyTest下找到Test.h头文件

  • 什么是linux Qt[通俗易懂]

    什么是linux Qt[通俗易懂]Qt是一个跨平台的C++图形用户界面库,由挪威TrollTech公司出品,目前包括Qt,基于Framebuffer的QtEmbedded,快速开发工具QtDesigner,国际化工具QtLinguist等部分Qt支持所有Unix系统,当然也包括Linux,还支持WinNT/Win2k,Win95/98平台。

  • 线程VS进程「建议收藏」

    线程VS进程「建议收藏」什么是线程、什么是进程在Java中要同时执行(如果是单核,准确的说是交替执行)多个任务,使用的是多线程,而要理解线程,我们先要了解什么是进程什么是线程。一般的定义:进程是指在操作系统中正在运行的一个应用程序,线程是指进程内独立执行某个任务的一个单元。怎么理解呢?比如说QQ是是一个进程,如果你在和A朋友语音聊天的同时和B朋友打字聊天,同时还在QQ群下载图片,这三个操作就相当于开启了三个线程,可以说有了线程之后我们设计的程序就可以一边执行A操作,一边执行B操作了。线程和进程有什么区别呢?首先最直观的

  • pycharm提示no python interpreter_pycharm failed to create virtual

    pycharm提示no python interpreter_pycharm failed to create virtual学习笔记遇到问题在学习时,用pycharm打开浏览器的时候(我用的是谷歌浏览器,别的浏览器也用这个思路解决)发现提示说找不到这个文件解决方法:打开设置(File→Settings)点击工具,浏览器(Tools→WebBrowsers)在工具那一项中,点击浏览器,再在右边的浏览器中,找到自己要用的浏览器在浏览器对应的路径中修改路径(找到该浏览器下载在本机的位置)这一步老师…

  • 递归算法php,php递归算法经典实例「建议收藏」

    递归算法php,php递归算法经典实例「建议收藏」PHP递归算法就是函数调用函数了操作非常的简单了,我们下面来给各位介绍PHP递归算法及实际的一些关于递归的用法。递归函数为自调用函数,在函数体内直接或间接自己调用自己,但需要设置自调用的条件,若满足条件,则调用函数本身,若不满足则终止本函数的自调用,然后把目前流程的主控权交回给上一层函数来执行,可能这样给大家讲解,还是很难明白,直接上例子functiontest($n){echo$n.”…

  • linux内核编程入门篇_linux内核编程入门

    linux内核编程入门篇_linux内核编程入门Linux内核编程实战经验谈李艳彬01-7-27上午10:45:17当前,在国产自主版权的操作系统这面大旗

发表回复

您的电子邮箱地址不会被公开。

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