项目结构

项目代码

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. SpringBoot Actuator — 埋点和监控

    项目中看到了有埋点监控.报表.日志分析,有点兴趣想慢慢捣鼓一下 1. 数据埋点 监控机器环境的性能和业务流程或逻辑等各项数据,并根据这些数据生成对应的指标,那么我们就称为数据埋点.比如我们想知道某个接 ...

  2. DECODE 与CASE WHEN 的比较

    1.DECODE 只有Oracle 才有,其它数据库不支持; 2.CASE WHEN的用法, Oracle.SQL Server. MySQL 都支持; 3.DECODE 只能用做相等判断,但是可以配 ...

  3. <C#任务导引教程>练习五

    //27,创建一个控制台应用程序,声明两个DateTime类型的变量dt,获取系统的当前日期时间,然后使用Format格式化进行规范using System;class Program{    sta ...

  4. [cf587D]Duff in Mafia

    二分最大边权,即有些边强制不能被选 接下来,即任意一点上某两边不能同时被选,以及任意一点上颜色相同的两边必须被选择一条 这些限制都可以用2-sat的形式来描述(强制不能选即连边"选-> ...

  5. [atAGC049E]Increment Decrement

    由于每一个操作的逆操作都存在,可以看作将$a_{i}$全部变为0的代价 先考虑第一个问题,即对于确定的$a_{i}$如何处理 如果仅能用第2种操作,定义点$i$的代价为以$i$为左端点或以$i-1$为 ...

  6. 查询多个count展示结果

    <select id="getCountByDISC" resultType="com.rm.algo.entity.AlgoResult"> SE ...

  7. 洛谷 P3783 - [SDOI2017]天才黑客(前后缀优化建图)

    题面传送门 神仙题一道. 首先注意到这里的贡献涉及到边的顺序,并且只与相邻的边是什么有关,因此不难想到一个做法--边转点,点转边,具体来说对于每条边 \(e\),我们将其拆成两个点 \(in_e,ou ...

  8. C#表头固定

    <%@ Control Language="C#" AutoEventWireup="true" CodeFile="info.ascx.cs& ...

  9. Java项目发现==顺手改成equals之后,会发生什么?

    最近发生一件很尴尬的事情,在维护一个 Java 项目的时候,发现有使用 == 来比较两个对象的属性, 于是顺手就把 == 改成了 equals.悲剧发生...... == 和 equals 的区别 = ...

  10. 一起手写吧!sleep函数!

    Async/Await 版本 function sleep(delay) { return new Promise(reslove => { setTimeout(reslove, delay) ...