C#+access做注册、登陆界面 【实测成功】

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

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

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


博主是从零开始学习做C#+access做注册、登陆界面(下面讲述一下博主的制作过程)——最终制作成功如图:
在这里插入图片描述
在这里插入图片描述
(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;
在这里插入图片描述
(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 + "')";

附图:
在这里插入图片描述
其中语句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();

如图:
在这里插入图片描述
而不是
在这里插入图片描述
在这里插入图片描述


参考项目源码

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

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



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

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

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

在这里插入图片描述
即可。

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

要实现C#、Visual Studio和Access的登录和注册功能,可以按照以下步骤: 1. 创建Access数据库,包含用户表和密码表,可以使用Access的设计视图创建表并填充数据。 2. 在Visual Studio中创建C#窗体应用程序。在窗体中添加用户名和密码的输入框,以及登录和注册按钮。 3. 在C#代码中,使用ADO.NET连接Access数据库,查询用户表和密码表,判断用户输入的用户名和密码是否正确。 4. 如果用户点击注册按钮,将用户输入的用户名和密码插入到用户表和密码表中。 以下是一些示例代码: 连接Access数据库: ``` string connString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=your_database.accdb"; OleDbConnection conn = new OleDbConnection(connString); conn.Open(); ``` 查询用户表和密码表: ``` string sql = "SELECT * FROM users WHERE username=@username"; OleDbCommand cmd = new OleDbCommand(sql, conn); cmd.Parameters.AddWithValue("@username", username); OleDbDataReader reader = cmd.ExecuteReader(); if (reader.Read()) { string passwordFromDB = reader["password"].ToString(); if (passwordFromDB == password) { // 登录成功 } else { // 密码错误 } } else { // 用户不存在 } ``` 插入用户数据: ``` string sql = "INSERT INTO users (username, password) VALUES (@username, @password)"; OleDbCommand cmd = new OleDbCommand(sql, conn); cmd.Parameters.AddWithValue("@username", username); cmd.Parameters.AddWithValue("@password", password); cmd.ExecuteNonQuery(); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值