2016-10-01 11 views
-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 
+1

'results.Add = ec.Decrypt(pass_decを)' < - これはコンパイルさえしていますか?また、[** 'New'キーワード**](https://msdn.microsoft.com/en-us/library/77s47661.aspx)を参照してください。 –

+0

すべてが完全にコンパイルされます。どこかで新しいキーワードが見つからないのですか?私はすべてを正しく宣言したと思った。 –

+0

その行は、私はまだそれをしてはならないので、私を悩ます。とにかく、どこかで 'New'キーワードが欠けています。あなたのリストの宣言で: '新しいリスト(文字列の)としての結果を薄暗くする'。エラーがスローされたらデバッガでリストを調べると、それがnullであることが示されます。 –

答えて

0

あなたは、キーワードNew使用する必要があります。

Dim results As New List(Of String) 
関連する問題