学生管理系统——连接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,说明密码不正确,无法登陆,提示用户"密码不正确"'


相关文章
|
1月前
|
SQL 存储 关系型数据库
MySQL原理简介—1.SQL的执行流程
本文介绍了MySQL驱动、数据库连接池及SQL执行流程的关键组件和作用。主要内容包括:MySQL驱动用于建立Java系统与数据库的网络连接;数据库连接池提高多线程并发访问效率;MySQL中的连接池维护多个数据库连接并进行权限验证;网络连接由线程处理,监听请求并读取数据;SQL接口负责执行SQL语句;查询解析器将SQL语句解析为可执行逻辑;查询优化器选择最优查询路径;存储引擎接口负责实际的数据操作;执行器根据优化后的执行计划调用存储引擎接口完成SQL语句的执行。整个流程确保了高效、安全地处理SQL请求。
187 76
|
5月前
|
SQL 开发框架 .NET
ASP.NET连接SQL数据库:详细步骤与最佳实践指南ali01n.xinmi1009fan.com
随着Web开发技术的不断进步,ASP.NET已成为一种非常流行的Web应用程序开发框架。在ASP.NET项目中,我们经常需要与数据库进行交互,特别是SQL数据库。本文将详细介绍如何在ASP.NET项目中连接SQL数据库,并提供最佳实践指南以确保开发过程的稳定性和效率。一、准备工作在开始之前,请确保您
403 3
|
4月前
|
SQL 安全 PHP
PHP开发中防止SQL注入的方法,包括使用参数化查询、对用户输入进行过滤和验证、使用安全的框架和库等,旨在帮助开发者有效应对SQL注入这一常见安全威胁,保障应用安全
本文深入探讨了PHP开发中防止SQL注入的方法,包括使用参数化查询、对用户输入进行过滤和验证、使用安全的框架和库等,旨在帮助开发者有效应对SQL注入这一常见安全威胁,保障应用安全。
126 4
|
5月前
|
SQL 数据库 索引
SQL语句实现投影连接:方法与技巧详解
在SQL数据库查询中,投影和连接是两个核心概念
|
5月前
|
SQL Java 数据库连接
如何使用`DriverManager.getConnection()`连接数据库,并利用`PreparedStatement`执行参数化查询,有效防止SQL注入。
【10月更文挑战第6天】在代码与逻辑交织的世界中,我从一名数据库新手出发,通过不断探索与实践,最终成为熟练掌握JDBC的开发者。这段旅程充满挑战与惊喜,从建立数据库连接到执行SQL语句,再到理解事务管理和批处理等高级功能,每一步都让我对JDBC有了更深的认识。示例代码展示了如何使用`DriverManager.getConnection()`连接数据库,并利用`PreparedStatement`执行参数化查询,有效防止SQL注入。
192 5
|
5月前
|
SQL 存储 数据库
SQL在构建系统中的应用:关键要素与编写技巧
在构建基于数据库的系统时,SQL(Structured Query Language)扮演着至关重要的角色
|
5月前
|
SQL 数据库 决策智能
SQL语句实现投影连接详解
在SQL中,投影(Projection)和连接(Join)是数据查询和处理中非常重要的两个操作
|
5月前
|
SQL 数据库 索引
SQL语句实现投影连接:技巧与方法详解
在SQL数据库操作中,投影连接(Projection Join)是一种常见的数据查询技术,它结合了投影(Projection)和连接(Join)两种操作
|
5月前
|
SQL 存储 监控
串口调试助手连接SQL数据库的技巧与方法
串口调试助手是电子工程师和软件开发人员常用的工具,它能够帮助用户进行串口通信的调试和数据分析
|
5月前
|
SQL 数据库 索引
内连接(INNER JOIN)在SQL中的简单应用与技巧
在SQL查询中,内连接(INNER JOIN)是一种基本且常用的连接类型,用于从两个或多个表中检索匹配的记录

热门文章

最新文章