仅作为学习记录、经验分享,大佬请跳过。

若想copy直接运行,不只是粘贴代码就可以
需要:
copy代码、winform拖拉控件、控件属性设置、vs连接数据库、数据库新建一个表+设置表的字段属性

一共这5步,才可以做成C#+access做注册、登陆界面


博主是从零开始学习做C#+access做注册、登陆界面(下面讲述一下博主的制作过程)——最终制作成功如图:

access control注册码 access登录注册设计_登录界面


access control注册码 access登录注册设计_sql_02


(P.S.并且可以又登录界面跳转到注册界面(这是后话))


制作过程: ——共三步 1、vs连接access数据库

2、博主参考制作C#+access做注册、登陆界面的文章

蓝本参考蓝本参考plus

其他参考

C#编写的登录界面——常用的C#小功能集锦如何用c#编写一个登录界面(内含access2010数据库)用c#实现简单的登录和注册功能——(P.S.这篇不是access数据库)

以及
C# 实现简单的登录

3、很多让人头疼的bug的解决——(记得有这么一些)

(1)bug是System.Data.OleDb.OleDbException (0x80040E07): 标准表达式中数据类型不匹配。

博主设置了access的创建的表里的字段的属性——数据类型的数字改为短文本

解决bug;

access control注册码 access登录注册设计_access control注册码_03


(2)bug是关于数据库语言insert使用错误:

在此给出正确的insert写法 【实测成功】:

if you want to 插入固定值:

string sql = "insert into login表1 (昵称,账号) values ('LanQ','2545493686')";

if you want to 插入winform的textbox控件上用户输入的值:
【博主用了很长很长时间搜索这个问题,最终发现下面这个可以,实测成功】:

string sql = "insert into login表1 (昵称,账号) values ('" + a + "','" + b + "')";

附图:

access control注册码 access登录注册设计_access control注册码_04


其中语句myCommand.ExecuteNonQuery();的意思是

让数据库执行(上两条语句设置的

string sql = "insert into login表1 (昵称,账号) values ('" + a + "','" + b + "')";OleDbCommand myCommand = new OleDbCommand(sql, conn);

sql命令

if you want to 检查用户输入的值是否匹配——即用于登录 (检查用户登录时输入的字符数据库中是否有)

string sql = "select 昵称,账号 from login表1 where 昵称='" + this.txtusername.Text + "'and 账号='" + this.textBox2.Text + "'";

(3)博主把(2)中bug解决后,发现数据库能够insert进去用户输入,但数据库中该行是空值(啥都没有)
【这个问题花了博主更长更长的时间】

解决:
最后索性把代码直接放到btnregister_Click(按钮的点击事件里),

而不是先在btnregister_Click外写一个函数public bool Add() ——再到private void btnlogin_Click(object sender, EventArgs e)函数里调用Form1 access = new Form1(); access.Add();

如图:

access control注册码 access登录注册设计_登录界面_05


而不是

access control注册码 access登录注册设计_数据库_06


access control注册码 access登录注册设计_access control注册码_07


参考项目源码

如果想下载直接运行或直接学习,博主不建议大家下载,
因为bug因电脑配置、vs版本、数据库字段属性而有所不同,运行后不一定成功;不如参考博主本篇博文一步一步做,然后逐一解决bug——博主也是从零开始学习最后做成的。

如果想大概浏览winform整体架构,可以下载(因为该压缩包的程序是博主学习C#winform的集合,是博主从零开始学习C#程序的过程实现记录,包含有简单的按钮点击——简易计算器——逐步深入的注册登录界面,即注册登录程序只是压缩包的其中一个,是a5系列。 )



记录20200408出现的一个问题:
运行后弹不出页面,并出现下面的提示

System.InvalidOperationException:“未在本地计算机上注册“Microsoft.Jet.OLEDB

解决:
将配置管理器的x64换成any CPU

access control注册码 access登录注册设计_sql_08


即可。

分析:博主的office是32位(之前想安装64位却安装错了。。),所以配置管理器中不能使用x64,导致登录界面不能弹出。
要么使用any CPU,要么使用x32
或者卸载安装64位的office,才能使用x64配置管理器。