OpenFileDialogを使用してテキストファイルを開き、LINQを使用して配列に分割して検索する電子メール連絡先の検索を行っています。 openFileDialogが動作していますが、LINQクエリを実行すると、object reference not set to an instance of an object
エラーが発生します。 Option Inferがオンになっていて、これが私の教科書のいくつかの例のように設定されていることがわかります。誰かが私を正しい方向に向けることができますか? (テキストファイルは、最初のボタン・コード上記のクラス変数として定義される: "Dim textFile(2) As String
"LINQクエリのヌルエラー
コード:
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles BtnOpen.Click
OpenFileDialog1.ShowDialog()
textFile(2) = OpenFileDialog1.FileName
lstOutput.DataSource = IO.File.ReadAllLines(textFile(2))
lstOutput.SelectedItem = Nothing
End Sub
Private Sub btnNameSearch_Click(sender As Object, e As EventArgs) Handles btnNameSearch.Click
Dim queryName = From line In textFile
Let data = line.Split(","c)
Let firstName = data(0)
Let lastName = data(1)
Let email = data(2)
Where firstName = txtName.Text
Select firstName, lastName, email
lstName.DataSource = queryName.ToList
End Sub
編集:コードは、ライン21上の破断 "データレット= line.Split("、 "C 。)あなたはLINQはに対してクエリを実行していることを文字列としてファイル名を使用している
一般的に 'If(OpenFileDialog.ShowDialog()== DialogResult.OK)'のようなものが必要です。それ以外の場合は[キャンセル]をクリックするとコードが実行されます。 –
私の無知を許してください。しかし、エラーのスタックトレースはどういう意味ですか? – jt1990
また、ファイルに余分な空白がないのは確かですか?分割しているコンマのように、前後にスペースがありませんか? 'firstName.Trim()== txtName.Text'なんかどこで行うことができますか? –