2012-02-07 5 views
0

「静的でないフィールド、メソッド、またはプロパティSkirmer_Final.Nyhed.FK_Nyhed_ID.get」にオブジェクト参照が必要です。そして私は何が間違っているのか理解できません。非静的エラー、理由が見つかりません

私のコード

public class Nyhed 
{ 
    public int FK_Status_ID { get; set; } 
    public int FK_Nyhed_ID { get; set; } 

    public static List<Nyhed> GetByStatus(int ID, SqlConnection connection) 
    { 
     List<Nyhed> result = new List<Nyhed>(); 

     using (var command = new SqlCommand("Select FK_Nyhed_ID from Status_Kan_Se_Nyhed where [email protected]")) 
     { 
      command.Connection = connection; 

      command.Parameters.AddWithValue("id", ID); 

      SqlDataReader reader = command.ExecuteReader(); 
      try 
      { 
       while (reader.Read()) 
       { 
        Nyhed StatusKanSeNyhed = new Nyhed(); 
        StatusKanSeNyhed.FK_Status_ID = ID; 
        StatusKanSeNyhed.FK_Nyhed_ID = reader.GetInt32(0); 
        result.Add(StatusKanSeNyhed); 
       } 
      } 
      finally 
      { 
       reader.Close(); 
      } 
      foreach (Nyhed N in result) 
      { 
       N.status = Status.GetByID(FK_Status_ID, connection); 
       N.nyhed = Nyhed.GetByID(FK_Nyhed_ID, connection); 
      } 
     } 
     return result; 
    } 
} 

あなたはエラーを見ることができますか?

答えて

3

FK_Nyhed_IDはプロパティです。したがって、オブジェクトを介して参照する必要があります。私は、問題はここにある推測している:あなたは以前にStatusKanSeNyhedインスタンス上FK_Nyhed_ID参照

foreach (Nyhed N in result) { 
    N.status = Status.GetByID(FK_Status_ID, connection); 
    N.nyhed = Nyhed.GetByID(FK_Nyhed_ID, connection); 
} 

ので、私はあなたが

foreach (Nyhed N in result) { 
    N.status = Status.GetByID(FK_Status_ID, connection); 
    N.nyhed = Nyhed.GetByID(N.FK_Nyhed_ID, connection); //<----- added object reference 
} 
0

FK_Status_IDの下N.FK_Nyhed_IDを参照したいと思う推測していることは、インスタンスのプロパティです静的メソッドからアクセスすることはできません。 静的にすることも、メソッドをインスタンスメソッドに変更することもできます。

2

私はあなたが

 foreach (Nyhed N in result) 
     { 
      N.status = Status.GetByID(N.FK_Status_ID, connection); 
      N.nyhed = Nyhed.GetByID(N.FK_Nyhed_ID, connection); 
     } 

を書いて、問題はここにある行方不明N.

+0

どのように私はそれを逃しましたか。ダムのような気分になりました –

0

を追加したいと思います:

foreach (Nyhed N in result) 
     { 
      N.status = Status.GetByID(FK_Status_ID, connection); 
      N.nyhed = Nyhed.GetByID(FK_Nyhed_ID, connection); 
     } 

あなたは、パブリックメンバーFK_Status_IDを読み取ろうとしている、あるwhitchオブジェクトのインスタンスを通してのみアクセス可能です。

関連する問題