298311657 发表于 2009-2-8 18:40:45

MSSQL数据库,如何进行帐户验证

想用au3写一个账户登陆程序,账户密码都记录在MSSQL数据库里,要如何把输入的账户与数据库中的进行对比验证呢?
下面的代码可以实现从数据库读取账户,但是没办法把输入的账户与数据库中的对比验证。
请求高手指点啊!!
#include <GUIConstantsEx.au3>
;#include <md5.au3>
;#include <StringMD5.au3>

$addfld = ObjCreate("ADODB.Connection")
$addfld.Open("driver={SQL Server};server=(local);uid=sa;pwd=123456;database=user")
$RS = ObjCreate("ADODB.Recordset")
$RS.ActiveConnection = $addfld
$RS.Open("Select * From user")
;建立MSSQL数据库连接,打开user表

GUICreate("登陆", 240, 90, @DesktopWidth / 2 - 120, @DesktopHeight / 2 - 45, -1, 0x00000018)
GUICtrlCreateLabel("账户:", 10, 8, 250, 15)
$ID = GUICtrlCreateInput("", 45, 5, 180, 20)
GUICtrlSetState(-1, $GUI_DROPACCEPTED)
GUICtrlCreateLabel("密码:", 10, 38, 250, 15)
$PW = GUICtrlCreateInput("", 45, 35, 180, 20)
$btn = GUICtrlCreateButton("Ok", 90, 65, 60, 20)
GUISetState()

$msg = 0
While $msg <> $GUI_EVENT_CLOSE
        $msg = GUIGetMsg()
        Select
                Case $msg = $btn
                        ExitLoop
        EndSelect
WEnd
If GUICtrlRead($ID) = "" Or GUICtrlRead($PW) = "" Then
        MsgBox(4096, "错误", "请输入完整的数据!")
        Exit
EndIf
;$c_md5 = md5(GUICtrlRead($PW))
;MsgBox(4096, "账户", GUICtrlRead($ID))
;MsgBox(4096, "密码", $c_md5)

While Not $RS.eof And Not $RS.bof
        If @error = 1 Then ExitLoop
If GUICtrlRead($ID) = $RS.Fields(1).value Then ;$RS.Fields(1).value是从数据库读取到的账户名
        MsgBox(4096, "yes", $nid)
        ExitLoop
        EndIf
        $RS.movenext
WEnd
$RS.close
$addfld.Close


[ 本帖最后由 298311657 于 2009-2-8 19:00 编辑 ]

pusofalse 发表于 2009-2-8 18:52:12

可能是末尾有空字符的缘故,可以用正则匹配~比如这样:
If GuiCtrlRead($ID) == stringRegExpReplace($rs.Fields(1).value, "\s+$", "") then
         msgBox(4096, 'yes', $nID)
         ;..........
EndIf

[ 本帖最后由 pusofalse 于 2009-2-8 18:53 编辑 ]

298311657 发表于 2009-2-8 19:00:07

非常感谢,2楼的回答!!
谢谢!!

javarike 发表于 2009-2-9 00:29:44

看不明白,你们来指点下。。

wangmsheng 发表于 2010-5-9 00:16:19

正在学习,多谢

ljf840212 发表于 2011-1-11 20:12:52

学习了~谢谢

dzztxiao 发表于 2011-2-21 15:16:24

{:face (239):}我也学学.

clshuai 发表于 2011-3-2 18:15:04

学习了,保存下来,将来有用。呵呵。。。。谢谢楼主

小凯 发表于 2011-8-31 17:30:55

保存下!留着一后看!

Netfox 发表于 2015-5-4 04:48:45

学习。。。。。
页: [1]
查看完整版本: MSSQL数据库,如何进行帐户验证