学生管理系统——连接SQL验证用户名与密码的流程

简介: 学生管理系统——连接SQL验证用户名与密码的流程

1.定义ConnectString方法

学生信息管理系统首先要与SQL server进行连接,语句如下:

Public Function ConnectString() As String
    ConnectString = "fileDSN=studentinfo.dsn;UID=sa;PWD=123456"
    '一个SQL语句,目的在于建立与SQL的连接'
End Function

  vb与数据库的连接时,需要建立一个文件的DSN,建立流程看我之前的博文:学生信息管理系统问题调试

  studentinfo.dsn就是建立连接时设置的数据源名称

  UID=sa;PWD=123456是用户登录连接SQL server的账号和密码。

2.定义ExecuteSQL方法

建立连接后,要想向数据库查询想要的数据,需要先定义一个执行方法:ExecuteSQL

'方法ExecuteSQL定义为ADODB.Recordset类型,SQL和MsgString是它的两个参数,'
'使用方法为:ExecuteSQL(SQL,MsgString)'
Public Function ExecuteSQL(ByVal SQL As String, MsgString As String) As ADODB.Recordset
    Dim cnn As ADODB.Connection
    Dim rst As ADODB.Recordset
    Dim sTokens() As String
    '如果遇到错误就跳转到错误处理代码'
    On Error GoTo ExecuteSQL_Error
    'Split把SQL分割成一个一个的字符串,并按序排号'
    sTokens = Split(SQL)
    Set cnn = New ADODB.Connection'实例化cnn为一个ADODB.Connection对象'
    cnn.Open ConnectString  '使用ConnectString方法'
    'instr函数为字符查找函数,其功能是查找一个字符串在另一个字符串中首次出现的位置'
    'Ucase$(sTokens(0)) 将所有的英文字符转换成大写字母,方便查找是否包含"INSERT,DELETE,UPDATE"'
    If InStr("INSERT,DELETE,UPDATE", UCase$(sTokens(0))) Then 
        cnn.Execute SQL 
        MsgString = sTokens(0) & " query successful"
        '虽然MsgString不是返回值,但传递方式是ByRef,实参地址和这个地址相同
    Else                                                               
        Set rst = New ADODB.Recordset '实例化rst为一个ADODB.Recordset对象'
        '得到含有用户名和密码的临时表,游标指向第一条记录'
        rst.Open Trim$(SQL), cnn, adOpenKeyset, adLockOptimistic
        Set ExecuteSQL = rst
        MsgString = "查询到" & rst.RecordCount & " 条记录 "
   End If
ExecuteSQL_Exit:
   Set rst = Nothing
   Set cnn = Nothing
   Exit Function
ExecuteSQL_Error:
   MsgString = "查询错误: " & Err.Description
   Resume ExecuteSQL_Exit
End Function

3.查询用户名是否存在(1)

  方法定义完了,开始在user数据库的info表中查找所有满足user_ID=txtUserName.Text条件的值,并赋给txtSQL,没有则显示NULL。

  txtUserName.Text:登陆时用户输入的用户名

  user_ID:是数据库中记录用户名那一列的名字

txtSQL = "select * from user_Info where user_ID = '" & txtUserName.Text & "'"

1.单引号是干啥使的?

答:单引号和双引号的作用几乎是一样的,起引用作用,只不过一个运用在数据库,一个运用在VB。比如:

  text1.text=“你好” [VB中]
  text1.text=‘你好’ [数据库中]

  • 2.首先把txtSQL看作是A
A="select * from student_Info where student_ID = '" & txtUserName.Text & "'"

  然后把双引号中的内容分作两个部分,用a,b代替

a=select * from student_Info where student_ID = '
b='

 那么,A = "a" & txtUserName.Text & "b"


4.查询用户名是否存在(2)

  mrc已经实例化,包含了ExecuteSQL内的参数,可以用来查询用户名和密码是否正确。

Dim mrc As ADODB.Recordset
Set mrc = ExecuteSQL(txtSQL, MsgText) '在第3步,txtSQL已经被赋予了值'
If mrc.EOF Then ……
'mrc.EOF=False,说明记录集游标不在结尾,用户名存在,下一步查询密码是否正确'
'mrc.EOF=True,说明记录集游标已经在结尾了,用户名不存在,无法登陆,提示用户"用户名不存在"'

5.查询输入的密码是否正确

  txtPassword.Text:登陆时用户输入的用户名密码

Trim(mrc.Fields(1)) = Trim(txtPassword.Text)
'mrc记录集的字段(0)是用户名,字段(1)就是这个用户名的密码'
'OK = True,说明密码正确,可以成功登陆跳转下一个窗体'
'OK = False,说明密码不正确,无法登陆,提示用户"密码不正确"'


相关文章
|
20天前
|
SQL 数据可视化 关系型数据库
MCP与PolarDB集成技术分析:降低SQL门槛与简化数据可视化流程的机制解析
阿里云PolarDB与MCP协议融合,打造“自然语言即分析”的新范式。通过云原生数据库与标准化AI接口协同,实现零代码、分钟级从数据到可视化洞察,打破技术壁垒,提升分析效率99%,推动企业数据能力普惠化。
109 3
|
4月前
|
SQL 缓存 监控
SQL 质量革命:利用 DAS 智能索引推荐修复慢查询全流程
在数据驱动时代,数据库性能直接影响系统稳定与响应速度。慢查询常因索引缺失、复杂逻辑或数据量过大引发,导致延迟、用户体验下降甚至业务受损。DAS(数据库管理服务)提供智能索引推荐功能,通过分析SQL语句与数据分布,自动生成高效索引方案,显著提升查询性能。本文结合实战案例,详解DAS智能索引推荐原理与使用流程,帮助用户快速定位问题并优化数据库表现,实现系统高效运行。
242 61
|
2月前
|
SQL 容灾 安全
云时代SQL Server的终极答案:阿里云 RDS SQL Server如何用异地容灾重构系统可靠性
在数字化转型的浪潮中,数据库的高可用性已成为系统稳定性的生命线。作为经历过多次生产事故的资深开发者,肯定深知传统自建SQL Server架构的脆弱性——直到遇见阿里云 RDS SQL Server,其革命性的异地容灾架构彻底改写了游戏规则。
|
6月前
|
SQL 安全 关系型数据库
SQL注入之万能密码:原理、实践与防御全解析
本文深入解析了“万能密码”攻击的运行机制及其危险性,通过实例展示了SQL注入的基本原理与变种形式。文章还提供了企业级防御方案,包括参数化查询、输入验证、权限控制及WAF规则配置等深度防御策略。同时,探讨了二阶注入和布尔盲注等新型攻击方式,并给出开发者自查清单。最后强调安全防护需持续改进,无绝对安全,建议使用成熟ORM框架并定期审计。技术内容仅供学习参考,严禁非法用途。
857 0
|
3月前
|
SQL XML Java
配置Spring框架以连接SQL Server数据库
最后,需要集成Spring配置到应用中,这通常在 `main`方法或者Spring Boot的应用配置类中通过加载XML配置或使用注解来实现。
284 0
|
12月前
|
SQL 开发框架 .NET
ASP.NET连接SQL数据库:详细步骤与最佳实践指南ali01n.xinmi1009fan.com
随着Web开发技术的不断进步,ASP.NET已成为一种非常流行的Web应用程序开发框架。在ASP.NET项目中,我们经常需要与数据库进行交互,特别是SQL数据库。本文将详细介绍如何在ASP.NET项目中连接SQL数据库,并提供最佳实践指南以确保开发过程的稳定性和效率。一、准备工作在开始之前,请确保您
693 3
|
11月前
|
SQL 安全 PHP
PHP开发中防止SQL注入的方法,包括使用参数化查询、对用户输入进行过滤和验证、使用安全的框架和库等,旨在帮助开发者有效应对SQL注入这一常见安全威胁,保障应用安全
本文深入探讨了PHP开发中防止SQL注入的方法,包括使用参数化查询、对用户输入进行过滤和验证、使用安全的框架和库等,旨在帮助开发者有效应对SQL注入这一常见安全威胁,保障应用安全。
441 4
|
12月前
|
SQL 数据库 索引
SQL语句实现投影连接:方法与技巧详解
在SQL数据库查询中,投影和连接是两个核心概念
|
12月前
|
SQL 数据库 索引
SQL语句实现投影连接:技巧与方法详解
在SQL数据库操作中,投影连接(Projection Join)是一种常见的数据查询技术,它结合了投影(Projection)和连接(Join)两种操作

热门文章

最新文章