发新话题
打印

[基础] 读取SQL数据小问题。。

读取SQL数据小问题。。

Set conn = New ADODB.Connection
    Set rs = New ADODB.Recordset
    conn.C
    conn.ConnectionTimeout = 30
    conn.Open
    rs.Open "select user_id,user_password from userdata where user_id='" & Trim(TxtNum.Text) & "' And user_password='" & Trim(TxtPassword.Text) & "'", conn, adOpenStatic, adLockReadOnly, adCmdText
    If rs.EOF = True And rs.BOF Then
        m = MsgBox("请重新登录", vbExclamation)
    Else
        userName = rs.Fields(user_name)
好象最后一句有问题。。不知道怎么回事
用     userName = rs("user_name") 代替也不行。。
做ASP时都是可以这样写的。。。写VB的时候不知道怎么写了。。。。

TOP

conn.C
这句是什么意思?
userName = rs.fields("user_name").value
换个头像,看见广告就眼红,直接封ID。

TOP

晕。。没复制完全呵呵
应该是
……
conn.ConnectionString = "Driver={sql server};server=202.194.229.179;uid=sa;pwd=;database=xinxi"
    conn.ConnectionTimeout = 30
……

今天到学校机房试了试

userName = rs.fields("user_name").value
userName = rs("user_name")
  
都可以了。。怎么回事。。够晕。。。
这两句有什么区别吗?
是不是加上  fields("字段名").value 效果更好呢?

TOP

终于发现问题了
Set conn = New ADODB.Connection
    Set rs = New ADODB.Recordset
    conn.C
    conn.ConnectionTimeout = 30
    conn.Open
    rs.Open "select user_id,user_password from userdata where user_id='" & Trim(TxtNum.Text) & "' And user_password='" & Trim(TxtPassword.Text) & "'", conn, adOpenStatic, adLockReadOnly, adCmdText
    If rs.EOF = True And rs.BOF Then
        m = MsgBox("请重新登录", vbExclamation)
    Else
            userName = rs.Fields("user_name").Value

……

这样写还是提示 rs.Fields("user_name").Value为空值
但是把
里面
rs.Open "select user_id,user_password from userdata where user_id='" & Trim(TxtNum.Text) & "' And user_password='" & Trim(TxtPassword.Text) & "'", conn, adOpenStatic, adLockReadOnly, adCmdText

改为
rs.Open "select user_id,user_password,user_name from userdata where user_id='" & Trim(TxtNum.Text) & "' And user_password='" & Trim(TxtPassword.Text) & "'", conn, adOpenStatic, adLockReadOnly, adCmdText


就可以正常通过了!

。。真晕。。
但是在有的机器里不用改也可以通过。。例如我们机房的机器。。。


。。。。真是不解。。。。。

TOP

我也没细看,你原来没在SQL语句里显示user_name,呵呵。
.Fields是Recordset的缺省属性,加上了这个,程序速度更快。
换个头像,看见广告就眼红,直接封ID。

TOP

发新话题