我做一个连接数据库的界面时,下面代码是在编写登陆界面的代码。
在中间红色的那个地方出来问题。从数据库里得出来的用户名是‘唐明啸’,但运行就出现,唐明啸前有未闭合的引导。
我觉得应该是那个引号的问题,那个引号的意思应该是,在数据库中得到用户名,你输入密码后,他通过用户与密码核对,如果密码正确,则进入。
我用的是mfc。
connstring = "provider=sqloledb.1;password=123;persist security info=true;user id=sa;" & "initial catalog=purchaseandsale;server=(local)"
If conn.State <> 1 Then
conn.Open (connstring)
End If
Set rs = conn.Execute("select * from users where 用户='" & Trim(cmbusername.Text) & "")
If rs.EOF Then
MsgBox "没有该用户!" & vbCrLf & "请重新输入", vbOKOnly + vbExclamation, "提示"
cmbusername.SetFocus
Exit Sub
Else

解决方案 »

  1.   

    Set rs = conn.Execute("select * from users where 用户='" & Trim(cmbusername.Text) & "'")
      

  2.   

    Set rs = conn.Execute("select * from users where 用户='" & Trim(cmbusername.Text) & "'")
      

  3.   

    给一个和问题无关的小建议,客户端的直接sql调用,最好都能做成客户端调用存储过程的形式,客户端只传参数.非查询类的存储过程返回2个参数,retCode和retMsg,客户端可以根据retCode自己判断是否需要显示返回信息这样你可以在数据库端统一的检查是否有sql注入等问题,以及对注册,登录,查询等一系列的操作留下可备案的日志记录.如果要修改一些提示的东西,不必编译客户端的程序,直接修改存储过程即可