Foxtable(狐表)用户栏目专家坐堂 → ACCESS用ADO用户登录报错?


  共有2176人关注过本帖树形打印复制链接

主题:ACCESS用ADO用户登录报错?

帅哥哟,离线,有人找我吗?
lin98
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1360 积分:9034 威望:0 精华:0 注册:2020/11/4 22:15:00
ACCESS用ADO用户登录报错?  发帖心情 Post By:2024/6/17 9:25:00 [显示全部帖子]

Dim UserName As String = e.Form.Controls("UserName").Value
Dim db = HySql.DataBaseFactory.CreateDatabase("YF123")
If UserName = "" Then
    Messagebox.show("请选择用户!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information)
    Return
End If

'ACCESS
Dim Sql = "Selec-t * From Users Where Name = '" & UserName & "'"
Dim dt As system.data.DataTable = db.ExecuteDataSet(Sq-l).Tables(0)
'Msgbox(dt.Rows.Count) 

If dt.DataRows.Count = 0 Then
    Messagebox.show("此用户不存在!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information)
    Return
End If

Dim dr As DataRow
dr = dt.DataRows(0)
If e.Form.Controls("PassWord").Value = dr("Password") Then
    _UserName = UserName
    _UserGroup = dr("Group")
    _UserRole = dr("Role")
    
    e.Form.Close
Else
    Messagebox.show("密码错误!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information)
End If
报错:红代码不是system.data.DataTable,如何解决?

 回到顶部
帅哥哟,离线,有人找我吗?
lin98
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1360 积分:9034 威望:0 精华:0 注册:2020/11/4 22:15:00
  发帖心情 Post By:2024/6/17 10:16:00 [显示全部帖子]

没搞明白,请老师在实例纠正,谢谢

[此贴子已经被作者于2024/6/17 14:33:45编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
lin98
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1360 积分:9034 威望:0 精华:0 注册:2020/11/4 22:15:00
  发帖心情 Post By:2024/6/17 10:47:00 [显示全部帖子]

dr = dt.DataRows(0)也报同样错

 回到顶部
帅哥哟,离线,有人找我吗?
lin98
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1360 积分:9034 威望:0 精华:0 注册:2020/11/4 22:15:00
  发帖心情 Post By:2024/6/17 11:13:00 [显示全部帖子]

dr = dt.Rows(0)也报同样错

 回到顶部
帅哥哟,离线,有人找我吗?
lin98
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1360 积分:9034 威望:0 精华:0 注册:2020/11/4 22:15:00
  发帖心情 Post By:2024/6/17 11:37:00 [显示全部帖子]

报错:类型system.data.DataRow的值无法转换为DataRows,

 回到顶部
帅哥哟,离线,有人找我吗?
lin98
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1360 积分:9034 威望:0 精华:0 注册:2020/11/4 22:15:00
  发帖心情 Post By:2024/6/17 12:19:00 [显示全部帖子]

Dim UserName As String = e.Form.Controls("UserName").Value
Dim db = HySq-l.DataBaseFactory.CreateDatabase("YF123")
If UserName = "" Then
    Messagebox.show("请选择用户!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information)
    Return
End If

Dim Sq-l = "Selec-t * From Users Where Name = '" & UserName & "'"
Dim dt As system.data.DataTable = db.ExecuteDataSet(Sq-l).Tables(0)
'Msgbox(dt.Rows.Count) 
Msgbox(1) 
'If dt.DataRows.Count = 0 Then    'ACCESS---EF
If dt.Rows.Count = 0 Then
    Messagebox.show("此用户不存在!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information)
    Return
End If

Msgbox(2) 

Dim dr As system.data.DataRow
dr = dt.Rows(0) ' 
Msgbox(3) 

'e.Form.Controls("PassWord").BindingField = "用户登录_Table1.PassWord"
If e.Form.Controls("PassWord").Value = dr("Password") Then 
    _UserName = UserName
    _UserGroup = dr("Group")
    _UserRole = dr("Role")
    
    e.Form.Close
Else
    Messagebox.show("密码错误!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information)
End If
Msgbox(4) 

红代码执行报错:从类型“DBNull”到类型“String”的转换无效。

 回到顶部
帅哥哟,离线,有人找我吗?
lin98
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1360 积分:9034 威望:0 精华:0 注册:2020/11/4 22:15:00
  发帖心情 Post By:2024/6/17 13:37:00 [显示全部帖子]

If e.Form.Controls("PassWord").text = dr("Password").tostring Then 
还是报错,
.NET Framework 版本:4.0.30319.42000
Foxtable 版本:2022.8.18.1
错误所在事件:窗口,用户登录,Button1,Click
详细错误信息:
从类型“DBNull”到类型“String”的转换无效。

 回到顶部
帅哥哟,离线,有人找我吗?
lin98
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1360 积分:9034 威望:0 精华:0 注册:2020/11/4 22:15:00
  发帖心情 Post By:2024/6/17 14:18:00 [显示全部帖子]

可以执行,但不安全,因为选择用户,按确定就可以登录,不用输入密码,存在不安全,如何解决?

图片点击可在新窗口打开查看此主题相关图片如下:登录问题.png
图片点击可在新窗口打开查看


 回到顶部