2012-01-12 15 views
-8

を...null参照の例外項目オブジェクト参照してさらに別の問題

私は最近、私はC#でいた古いプロジェクトを拾ったもののまし

私は私のリストボックスで項目を選択しようとすると、選択したとき「オブジェクト参照がオブジェクトのインスタンスに設定されていません」が発生します。

マイコード:

private void listBoxAddons_SelectedIndexChanged(object sender, EventArgs e) 
    { 
     string selectedItem = Convert.ToString(listBoxAddons.SelectedItem); 
     XDocument xmlDoc = XDocument.Load(Settings.xmlPath); 
     var q = from c in xmlDoc.Descendants("part") 
       where c.Element("name").Value == selectedItem 
       select new 
       { 
        name = c.Element("name").Value, 
        category = c.Element("category").Value, 
        desc = c.Element("desc").Value, 
        manu = c.Element("manu").Value, 
        author = c.Element("author").Value, 
        imageLocation = c.Element("image").Value, 
        download = c.Element(@"download").Value 
       }; 
     foreach (var obj in q) 
     { 

      labelName.Text = obj.name; 
      labelCategory.Text = obj.category; 
      labelDesc.Text = obj.desc; 
      labelManu.Text = obj.manu; 
      labelAuthor.Text = obj.author; 
      pictureBox1.ImageLocation = obj.imageLocation; 
      download = obj.download; 
     } 
    } 

グレイトフル・右方向に任意の助け!

編集:エラーが発生したこれらの文字に

Visual Studioのポイント:

new 
        { 
         name = c.Element("name").Value, 
         category = c.Element("category").Value, 
         desc = c.Element("desc").Value, 
         manu = c.Element("manu").Value, 
         author = c.Element("author").Value, 
         imageLocation = c.Element("image").Value, 
         download = c.Element(@"download").Value 
        } 
+4

どちらの行にエラーがありますか?あなたがそれを知っているときに問題が何であるかはかなり明らかでしょう。 – ChrisF

+0

正直?少なくとも、どのような行を教えてもらえますか? – Will

+1

質問が更新されました。私がC#でそれほど偉大ではないので、私には明らかではありません。 –

答えて

1

あなたがXMLを照会していることが表示されます。あなたが使用している要素の名前( "名前"、 "カテゴリ"など)は正しいですか? Xmlでは大文字と小文字が区別されるので、要素名のスペルが間違っていないことを確認してください。また、xmlにすべての要素が含まれていることを確認してください。 1つがxmlにない場合は、.Valueプロパティにアクセスしようとするとその例外がスローされることがあります。

+0

いいえ、Image-valueがXMLにありませんでした。助けてくれてありがとう! –

0

XMLDOCはすべてフェイルドが含まれていることを確認し、 "部"、 "名前"、 "カテゴリ"、 "DESC"、 "MANU"、 "著者"、 "画像"、 "ダウンロード"

せずに回避するために、 FirstOrDefault()はElement(@ "download")のような働きをしますFirstOrDefault()。値