我已经使用Visual Studio 2008将VB6项目转换为VB.NET。我有一些代码在doa.Field为String Type时为invalid cast type
抛出错误。
以下是我正在使用的代码:
If rstLogin.BOF = True And rstLogin.EOF = True Then
MsgBox("User name not found, please try again!", , "Login")
frmLogin.txtUserName.Focus()
System.Windows.Forms.SendKeys.Send("{Home}+{End}")
Else
If Trim(inPassword) = Clean(rstLogin.Fields.Item("PassWord")) Then
Call MoveUserRecord(rstLogin)
LogUserIn = True
Else
MsgBox("Invalid Password, please try again!", , "Login")
frmLogin.txtPassword.Focus()
System.Windows.Forms.SendKeys.Send("{Home}+{End}")
End If
End If
错误是:
无法将类型为'dao.FieldClass'的COM对象强制转换为类类型'System.String'。表示COM组件的类型实例不能转换为不代表COM组件的类型;但是只要底层的COM组件支持对接口的IID的QueryInterface调用,它们就可以转换为接口。
密码代码部分会抛出错误。
If Trim(inPassword) = Clean(rstLogin.Fields.Item("PassWord")) Then
我尝试将.ToString()
添加到我可以添加到的所有内容中,但仍然会遇到相同的错误。有人可以告诉我我做错了什么,以及如何解决这个问题?
答案 0 :(得分:0)
Hans Passant真的很接近是答案。为了您修复错误,并使您的代码正确编译。您需要使用:
rstLogin.Fields("PassWord").Value.ToString()
我已对此进行了测试,我相信它会起作用。