项目结构

项目代码

WebForm_Login.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm_Login.aspx.cs" Inherits="WebApplication_OmtpcMgrSystem.sign.WebForm_Login" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Label ID="lbl1" runat="server" Text="用户名"></asp:Label>
<asp:TextBox ID="tb1" runat="server"></asp:TextBox>
</div>
<asp:Label ID="lbl2" runat="server" Text="密码"></asp:Label>
<asp:TextBox ID="tb2" runat="server"></asp:TextBox>
<br />
<asp:Label ID="lbl_Message" runat="server" Text=""></asp:Label>
<br />
<asp:Button ID="btl_Login" runat="server" Text="登录" OnClick="btl_Login_Click" />
<br />
<asp:HyperLink ID="hre_forget" runat="server">忘记密码</asp:HyperLink>
<asp:HyperLink ID="hre_reg" runat="server">注册</asp:HyperLink>
</form>
</body>
</html>
WebForm_Login.aspx.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using MySql.Data.MySqlClient; namespace WebApplication_OmtpcMgrSystem.sign
{
public partial class WebForm_Login : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
hre_reg.NavigateUrl = "WebForm_Reg.aspx";
} protected void btl_Login_Click(object sender, EventArgs e)
{
//接受前端数据并进行简单处理
string usrName = tb1.Text.Trim();
string usrPwd = tb2.Text.Trim();
//验证数据是否合理
if (usrName.Length == 0 || usrName.Length > 100)
{
lbl_Message.Text = "UserName is wrong!";
};
if (usrPwd.Length < 6 || usrPwd.Length > 100)
{
lbl_Message.Text = "UserPassword is wrong!";
}
//try
//{
//设计连接字符串(连接数据库)
string conn =
"Data Source = 127.0.0.1;" +
"User ID=root;" +
"Password=qq2686485465;" +
"DataBase=omtpc;" +
"port=3306";
//定义连接对象(构造函数的参数为数据库连接字符串)
MySqlConnection con = new MySqlConnection(conn);
//打开数据库连接
con.Open();
//执行数据库的访问操作
string strSqlCommand = "Select*from officer21 where usrID='" + usrName + "'";
MySqlCommand cmd = new MySqlCommand(strSqlCommand, con);
MySqlDataReader dr = cmd.ExecuteReader();//查找多行 : ExecuteReader()方法 | 执行结果放入dr中
//dr.Read();//读出dr内容 if (dr.Read())
{
string queryPassword = dr["password"].ToString();
if (usrPwd == queryPassword)
{
lbl_Message.Text = "验证成功";
Response.Redirect("welcome.aspx");
}
else
{
lbl_Message.Text = "验证失败";
}
}
else {
lbl_Message.Text = "用户名错误";
}
//结束
dr.Close();
con.Close(); //}
//catch (MySqlException ex)
//{
// Console.WriteLine(ex.Message);//有错则报出错误
//} //finally
//{ //} } }
}
WebForm_Reg.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm_Reg.aspx.cs" Inherits="WebApplication_OmtpcMgrSystem.sign.WebForm_Reg" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Label ID="lb1" runat="server" Text="账号"></asp:Label>
<asp:TextBox ID="tb1" runat="server"></asp:TextBox>
<br />
<asp:Label ID="lb2" runat="server" Text="密码"></asp:Label>
<asp:TextBox ID="tb2" runat="server" ></asp:TextBox>
<br />
<asp:Label ID="lb3" runat="server" Text="邀请码"></asp:Label>
<asp:TextBox ID="tb3" runat="server"></asp:TextBox>
<br />
<asp:Label ID="lbl_Message" runat="server" Text=""></asp:Label>
<br />
<asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" />
<br />
<asp:HyperLink ID="hre1" runat="server">已有账号?立即登录!</asp:HyperLink>
</div>
</form>
</body>
</html>
WebForm_Reg.aspx.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using MySql.Data.MySqlClient; namespace WebApplication_OmtpcMgrSystem.sign
{
public partial class WebForm_Reg : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
hre1.NavigateUrl = "WebForm_Login.aspx";
} protected void Button1_Click(object sender, EventArgs e)
{
//接受前端数据并进行简单处理
string usrName = tb1.Text.Trim();
string usrPwd = tb2.Text.Trim();
string addCode = tb3.Text.Trim();
//验证数据是否合理
if (usrName.Length == 0 || usrName.Length > 100)
{
lbl_Message.Text = "UserName is wrong!";
};
if (usrPwd.Length < 6 || usrPwd.Length > 100)
{
lbl_Message.Text = "UserPassword is wrong!";
}
if (usrPwd.Length < 0 || usrPwd.Length > 50)
{
lbl_Message.Text = "Invitation code is wrong!";
}
//try
//{
//设计连接字符串(连接数据库)
string conn =
"Data Source = 127.0.0.1;" +
"User ID=root;" +
"Password=qq2686485465;" +
"DataBase=omtpc;" +
"port=3306";
//定义连接对象(构造函数的参数为数据库连接字符串)
MySqlConnection con = new MySqlConnection(conn);
//打开数据库连接
con.Open();
//执行数据库的访问操作
string strSqlCommand = "Select*from invitationcode where code='" + addCode + "'";
MySqlCommand cmd = new MySqlCommand(strSqlCommand, con);
MySqlDataReader dr = cmd.ExecuteReader();//查找多行 : ExecuteReader()方法 | 执行结果放入dr中
//dr.Read();//读出dr内容 if (dr.Read())
{
string queryPassword = dr["used"].ToString();
if (queryPassword=="1")
{
//此时,注册码是没有问题的,但是在将新账户写入数据库之前,应当先验证数据库中是否已存在该账号
strSqlCommand = "Select*from officer21 where usrID='" + usrName + "'";
con.Close();
con.Open();
cmd = new MySqlCommand(strSqlCommand, con);
dr = cmd.ExecuteReader();
if (dr.Read()) {
//此时说明账号已被注册
lbl_Message.Text = "该账号已被注册,您可以直接登录或更换账号注册";
}else{
//此时说明账号没被注册
//准备在数据库中写入数据
con.Close();
con.Open();
//更新数据库中的账户信息
strSqlCommand = "insert into officer21 values('" + usrName + "','" + usrName + "','" + usrPwd + "','','','','')";
cmd = new MySqlCommand(strSqlCommand, con);
var row1 = cmd.ExecuteNonQuery();
//更新数据库的邀请码信息
strSqlCommand = " update invitationcode set used = 0, usrID= '" + usrName + "'where code='"+addCode+"'";
cmd = new MySqlCommand(strSqlCommand, con);
var row2 = cmd.ExecuteNonQuery();
if(row1>0 & row2>0)
lbl_Message.Text = "验证成功"; }
}
else
{
//此时说明注册码已经被使用了
lbl_Message.Text = "验证失败";
}
}
else
{
lbl_Message.Text = "邀请码不存在";
}
//结束
dr.Close();
con.Close();
//}
//catch (MySqlException ex)
//{
// Console.WriteLine(ex.Message);//有错则报出错误
//} //finally
//{ //}
}
}
}

【C#】【MySQL】C#连接MySQL数据库(三)登陆注册代码的更多相关文章

  1. Navicat for mysql 远程连接 mySql数据库10061、1045错误

    原文地址:http://www.111cn.net/database/mysql/46377.htm 有朋友可能会碰到使用Navicat for mysql 远程连接 mySql数据库会提示10061 ...

  2. 使用node中mysql模块连接本地数据库

    连接数据库的方法迄今为止学了三种: cmd方式.可视化工具,今天记第三种----node端连接数据库. 一:mysql模块介绍与下载 1.mysql模块是node端专门连接数据库的第三方模块 2.下载 ...

  3. python3.4怎么连接mysql pymysql连接mysql数据库

    本文介绍了python3 4连接mysql数据库的方法,在python3 4中使用原来python2 7的mysqldb已不能连接mysql数据库了,可以使用pymysql.   在python3.4 ...

  4. MySQL显示连接的数据库名

    在默认下,MySQL在use databasename的时候,是不显示连接的库名! mysql> show databases;+--------------------+| Database ...

  5. Navicat for mysql 远程连接 mySql数据库10061、1045错误问题 (转)

    远程使用Navicat for mysql 客户端软件连接 mySql数据时,连接出现 2003-Can’t connect to MySQL on ’192.168.1.2’(10061)错误时,是 ...

  6. (笔记)Mysql命令mysql:连接Mysql数据库

    mysql命令用户连接数据库. mysql命令格式: mysql -h主机地址 -u用户名 -p用户密码 1) 连接到本机上的MYSQL首先打开DOS窗口,然后进入目录mysql\bin,再键入命令m ...

  7. Mysql命令mysql:连接Mysql数据库

    mysql命令格式: mysql -h主机地址 -u用户名 -p用户密码 1) 连接到本机上的MYSQL首先打开DOS窗口,然后进入目录mysql\bin,再键入命令mysql -u root -p, ...

  8. C Mysql API连接Mysql

    最近都在查看MYsql C API文档,也遇到了很多问题,下面来简单的做一个总结. mysql多线程问题 mysql多线程处理不好,经常会发生coredump,见使用Mysql出core一文. 单线程 ...

  9. asp.net连接Access数据库实现登陆功能

    这里话就不多说了,直接演示代码. 连接access数据库首先需要配置web.config <appSettings> <add key="AccessConnString& ...

随机推荐

  1. PHP 数组函数分类整理

    1.处理数组键名相关的函数: array_change_key_case - 返回字符串键名全为小写或大写的数组. array_key_exists - 检查给定的键名或索引是否存在于数组中 arra ...

  2. 菜鸡的Java笔记 java基础类库 BaseClassLibrary

    java基础类库 BaseClassLibrary        StringBuffer 类的特点        StringBuffer,StringBuilder,String 类之间的关系   ...

  3. [bzoj3670]动物园

    首先计算出s数组,s表示可以重复的前缀等于后缀的个数,显然有s[i]=s[next[i]]+1,因为有且仅有next的next满足这个条件. 然后直接暴力枚举所有next,直到它小于i的一半,这个时间 ...

  4. [atARC110E]Shorten ABC

    考虑令$a$.$b$和$c$分别对应1.2和3,那么每一次相当于令$x$和$y$变为$x\oplus y$(要求$x\ne y$) 根据异或的结合律,我们相当于将其划分为若干个区间求异或值 (另外还有 ...

  5. [loj3368]数蘑菇

    由于题目是让我们统计个数,当我们确定了$k$个$p_{i}$都为0或1后,再用至多$\lceil \frac{n-k}{k}\rceil$次询问和$2(n-k)$个"$n$"即可求 ...

  6. Redis 源码简洁剖析 02 - SDS 字符串

    C 语言的字符串函数 C 语言 string 函数,在 C 语言中可以使用 char* 字符数组实现字符串,C 语言标准库 string.h 中也定义了多种字符串操作函数. 字符串使用广泛,需要满足: ...

  7. asList和subList的缺陷

    概述 在开发中我们经常使用asList去把一个数组转换为List.也存在通过subList.subMap.来对List.Map.Set来进行类似使用subString方法来对String对象进行分割处 ...

  8. 整理记录一些好用的随机图API

    最近自己博客使用的随机图API有些不稳定,自己又去搜集了一些有意思的随机图API,这里做一个整理记录 注意!!!本文链接最后测试时间----2021年11月21日 主题作者Tagaki的API(有时候 ...

  9. Codeforces 1158F - Density of subarrays(dp,神仙题)

    Codeforces 题目传送门 & 洛谷题目传送门 人生中第一道 *3500(显然不是自己独立 AC 的),不过还是祭一下罢 神仙 D1F 首先考虑对于给定的序列 \(a_1,a_2,\do ...

  10. Codeforces 521D - Shop(贪心)

    Codeforces 题目传送门 & 洛谷题目传送门 一道不算太难的贪心,可惜又没自己想出来,显然省选之后我的能力呈 \(y=-1145141919810192608179998244353x ...