-1
以下のコードは、VS 2008の提供されたユーザー名とパスワードに基づいてデータを取得します。reader.FieldCount
には、 。私が持っている問題はresults.Add
で、これはファイルの先頭にDim results As List(Of String)
と定義されています。プログラムがその行に到達すると、理由はわかりませんが、NullReferenceExceptionがスローされます。.NET CE 2.0データアクセスNullReferenceException List(T)のリストにDBフィールドを割り当てる場合
このプログラムは、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
'results.Add = ec.Decrypt(pass_decを)' < - これはコンパイルさえしていますか?また、[** 'New'キーワード**](https://msdn.microsoft.com/en-us/library/77s47661.aspx)を参照してください。 –
すべてが完全にコンパイルされます。どこかで新しいキーワードが見つからないのですか?私はすべてを正しく宣言したと思った。 –
その行は、私はまだそれをしてはならないので、私を悩ます。とにかく、どこかで 'New'キーワードが欠けています。あなたのリストの宣言で: '新しいリスト(文字列の)としての結果を薄暗くする'。エラーがスローされたらデバッガでリストを調べると、それがnullであることが示されます。 –