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



总结

  在使用VB语言连接SQL Server进行用户名和密码验证的流程中,细心和认真是非常重要的。

  首先,连接数据库是整个流程的核心步骤。在创建连接字符串时,需要确保提供正确的SQL Server实例和数据库名称,以及适当的身份验证方式。细心地检查和验证连接字符串的准确性可以避免连接失败或连接到错误的数据库。

  其次,创建SqlCommand对象时,需要确保查询语句的准确性和完整性。仔细编写SQL语句以检索用户名和密码的信息,确保语法正确,并考虑到可能的边界情况和异常情况。对于涉及用户输入的查询语句,要注意防止SQL注入攻击,使用参数化查询或其他安全措施来保护数据库的安全性。

  使用VB语言连接SQL Server进行用户名和密码验证的流程需要细心和认真对待。仔细处理连接、查询、异常处理和结果验证等步骤,可以确保程序的正确性、安全性和可靠性。通过细致入微的处理,可以提高代码的质量和用户体验,同时保护数据库和用户的数据安全。



  觉得有用就点个赞吧!

在这里插入图片描述

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
数据库设计 软件攻城设计 课程实习 带word文档 一. 可行性研究 并不是所有问题都有合理的解决办法,事实上许多问题不可能在预定的系统规模之内解决。如果问题没有可行的解决,那么花费在这项开发工程上的任何时间、资源、人力和经费都是无谓的浪费。 对于软件设计而言,可行性研究是尤其重要的,即在开发软件之前.用很小的代价在尽可能短的时间内确定问题是否可以得到解决。解决问题的软件是否有一定的商业价值和实用价值,即经济可行性;是否有可行的方法来解决问题,即是否有技术可行性;以及是否使工作更便利,并能较为方便的操作使用,即操作可行性。经过分析,认定可行后再去投资、开发,以免做了很多工作后才发现根本行不通或再做下去没多大的意义,减少人力和物力的浪费。 必须记住,可行性研究的目的不是解决问题,而是确定问题是否值得去解。怎样达到这个目的呢?当然不是靠主观猜测,而只能靠客观分析。必须分析几种主要的可能解法的利弊,从而判断原定的系统目标和规模是否现实,系统完成后所能带来的效益是否大到值得投资开发这个系统的程度。因此,可行性研究实质上是要进行一次大大压缩简化了的系统分析和设计的过程,也就是在较高层次上以抽象的方式进行的系统分析和设计。 二. 系统分析 2.1 需求分析 我校学生公寓现为手工管理,效率低、易出错、手续繁琐,而且耗费大量的人力,物力,财力。学校后勤处希望设计一个学生公寓管理系统管理学生住宿情况,员工情况,处理学生离校,管理人员来访情况等功能。通过此系统,后勤人员可以对学生公寓的各项情况实行电脑化管理,以提高工作效率,也使得公寓管理所需的各项信息能方便快速进行录入,查询,删除和更新。 面对学生公寓管理工作的特点以及该管理工作的具体问题, 本系统可以解决以下问题: (1) 录入公寓各学生的基本情况。 (2) 全面查询学生的基本情况。 (3) 对学生离校进行处理。 (4) 每学期对学生住宿进行注册。 (5) 对来访人员进行出入管理。 (6) 对学生的财务进行登记管理。 (7) 对各项情况进行修改,删除,更新。 (8) 友好的操作界面, 以及简单快速的操作. (9) 多种查询方式。 本系统针对学生公寓管理日常的工作程式, 对学生公寓的各项情况例如:学生信息,学生个人财产信息,来访人员信息等进行有效管理,并能通过各方法进行快速方便的查询。 使学生公寓管理工作运作简明、清晰,各状况一目了然,使学生公寓管理工作更加科学化、规范化。 2.2系统主要功能设计 系统主要功能包括: (1):管理系统:实现退出系统的功能。 (2):查询学生:按照学号,姓名,家庭住址,班级以及混合查询学生信息。 (3)学生管理:录入学生的基本情况,学生离校处理,按学期注册,以及对学生的个人财物情况进行管理。 (4)资料修改:对学生的基本资料,个人财物资料,注册情况进行修改,以及员工资料,货物出楼,来访登记等修改。 (5)出入登陆:来访登记和货物出楼登记。 2.3性能需求 a.数据精确度 该系统输入的数据为整形与字符型。 b.时间特性 包括响应时间、更新处理时间、数据转换与传输时间、运行时 间,这些时间尽可能短。 c.适应性 在操作方式、运行环境、与其他软件的接口以及开发计划等发生 变化时,可使用系统自带的一个程序来修改现行系统,以适应新的变 化。 系统界面: 2.4 E-R图如下: 2.5部分数据字典: 三.系统设计 3.1系统结构图 系统功能描述: 系统功能模块包括五大模块:管理系统模块,查询学生模块,学生管理模块,资料修改模块,出入登陆模块,关于模块 1. 管理系统模块:实现用户退出功能。 2. 查询学生模块:该模块包括三个子模块 按学号查询——实现按学号查询学生信息 按姓名查询——实现按姓名查询学生信息 按学生班级查询——实现按学生班级查询学生信息 3.学生管理模块:包括三个子模块 学生资料录入——录入入住学生的基本信息 学生离校处理——处理离校学生的情况 宿舍财物处理——登记学生个人财产 4.出入登陆:包括两各子模块 人员登记——完成来访人员的信息登记 出楼登记——实现出楼货物信息的登记 5.关于:显示版权所有信息 3.2业务流程图 根据学生公寓管理的普遍特点,学生公寓管理流程如下图所示 基本情况 来访者信息 各项基本 基本情况 学生信息 “宿舍财务”表的属性如下图所示 : 字段名称 字段数据类型 字段宽度 小数位数 排序 宿舍 Character 10 升序 柜子 Character 10 桌子 Character 2 凳子 Character 40 电扇 Character 20 宿舍等级 Character 1 备注 Date 8 “student”表的属性如下 : 字段名称 字段数据类型 字段宽度 小数位数 排序 学号 Character 6 升序 姓名 Character 5 性别 Character 2 入学时间 Character 40 班级 Character 20 宿舍 Character “用户管理”表的属性: 字段名称 字段数据类型 字段宽度 小数位数 排序 用户名称 Character 8 升序 用户密码 Character 6 权限等级 Character 2 3.4主程序设计 3.4.1数据模块窗体设计 1. 实现过程 避免向每个窗体中添加数据访问组件来访问数据库中的数据。 3.4.2主程序窗口设计 1.实现目标 启动主程序,验证操作员密码后,将进入主界面。主界面主要实现如下功能: (1) 通过菜单和工具栏快速调用相应的子程序。 (2) 操作具有权限的业务 (3) 显示功能、操作员等状态信息。 部分窗口如下: 主程序界面如下图所示: 3.4.3登陆窗口设计 1.实现目标 启动程序后,调用“登陆”下的“登陆”,将打开“登陆窗口”。登陆窗口主要实现用户的登陆功能。根据输入的用户名密码是否匹配系统能产生相应的提示信息。 3.4.4修改数据资料窗口 1.实现目标 3.4.5学生查询窗口 1.实现目标 窗口界面如下 四.系统评价 随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。 随着科学技术的发展,电脑已经遍及千家万户,生活中、生产的需要人工操作的部分越来越少,采用计算机加以管理,效率高,节省了大量的人力和物力。 过去,在生产销售过程中,产品的流通都是经过人的干预来实现的,效率低,准确性差,保密性不高、数据容易丢失。 而今,电脑给人们带来了一个崭新的世界。无数商家都竞相采用计算机控制技术,对企业内部及产品流通等进行管理。本学生公寓管理系统就是为了适应管理的需要,为广大用户而开发设计的。它使用方便,有简单易懂的开机画面,对于不熟悉计算机的人,也可以轻易掌握管理方法。 作为计算机应用的一部分,使用计算机对学生住宿信息进行管理,具有着手工管理所无法比拟的优点.例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高销售 管理的效率,也是销售的科学化、正规化管理,与世界接轨的重要条件。 学生公寓管理系统是典型的小型信息管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立起数据一致性和完整性强、数据安全性好的库。而对于后者则要求应用程序功能完备,易使用等特点。 经过分析,我使用BORLAND公司的Delphi开发工具,利用其提供的各种面向对象的开发工具,尤其是数据窗口这一能方便而简洁操纵数据库的智能化对象,首先在短时间内建立系统应用原型,然后,对初始原型系统进行需求迭代,不断修正和改进,直到形成用户满意的可行系统。 关键字:控件、窗体、域。 五遇到的问题和自我总结及评价 这次的课程设计将我们这学期所学的数据库的理论知识用到具体的实践中去,深化了理论知识,同时也锻炼了我们的动手实践能力,有了以前的练习为前提做起来也比较的顺利。不过在具体的实践的时候还是遇到了一些小的问题,比如数据类型的定义错误,字符的错误输入等等,这些虽然都是小问题,不过在具体实践过程中却浪费了不少时间,看来平时要多多的实践才是,除了要考虑问题周到还要多多注意一些细小的问题才是,做的熟练了问题也很容易的解决。我觉得的这次的课程设计重点在于触发器和存储过程。通过本次的课程设计使我们对SQL的功能又多了些了解,同时也较为熟悉的掌握了Delphi这门语言。一开始的时候遇到了不少小问题,后来多和同学讨论,多看看书,理论联系实践,许多问题就迎刃而解了。在本次的课程设计中我觉得应该注意的加强对触发器和存储过程的操作能力。虽然不是很难,但很多细小的问题需要认真的对待,稍有不注意问题就会在具体的应用程序调试过程中出现,这要求我们在实践的过程中除了要了塌实的理论知识还要细心,有耐心。当然在本次的设计过程中还出现了其他不少的问题,问题随着设计思想的深入而不断变化,不断的产生新问题,而我也在这过程中不断的解决问题,正是在这一过程中,我加深了对原理的认识,完善了设计思想,使自己分析问题解决问题的能力得到进一步的加强。 参考文献: [1] 萨师煊,王珊.《数据库系统概论》.高等教育出版社 [2].尹立宏《Visual Foxpro 7.0 数据库开发典型实例》电子工业出版社 [3]于文芳.《Visual Foxpro 教程》.人民邮电出版社

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夏诗曼CharmaineXia

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值