下面的代码根据 VS 2008 中提供的用户名和密码获取数据。当我检查reader.FieldCount
它时,它包含它应该包含的所有字段。我遇到的问题是在results.Add
文件顶部定义为Dim results As List(Of String)
. 当程序到达该行时,会抛出 NullReferenceException,但我不知道为什么。
该程序旨在在 MC9190-G 上运行,并在设备上的代码中运行到该点。我没有使用模拟器。代码直接部署到设备上进行测试。
Public Function getUser(ByVal username As String, ByVal password As String)
Dim ecif As New EncryptionInfo
Dim ec As New Encryption(ecif.key, ecif.iv)
Dim pass_dec, temp As String
Dim i As Integer
connect()
query = "SELECT * FROM UserInfo WHERE Username = '" + username.ToString + "'"
comm = New SqlCommand(query, cn)
Dim reader As SqlDataReader = comm.ExecuteReader
If (reader.FieldCount <> 0) Then
i = 0
reader.Read()
While (i < reader.FieldCount)
If (i = 1) Then
pass_dec = reader.GetString(i)
results.Add = ec.Decrypt(pass_dec)
Continue While
i += 1
End If
temp = reader.Item(i).ToString
results.Add(temp)
i += 1
End While
reader.Close()
cn.Close()
comm.Dispose()
Return results
End If
MessageBox.Show("No results")
Return Nothing
End Function