ne peut initialiser le type avec un initialiseur de collection, car il ne met pas en œuvre IEnumerable

voix
2

Je suis un développeur assez junior C # alors s'il vous plaît excusez - moi si cela est très facile, mais je reçois cette erreur « invalid initializer member declarator» à cette ligne du code ci - dessous:

foreach (DataRow p in data.Rows)
{
  DBTrack top = new DBTrack()
 /* ===> Error starts here */   {
     track.TrackID = SQLDataHelper.GetGuid(dataReader, TrackID); 
     track.TrackName = SQLDataHelper.GetString(dataReader, TrackName);
     track.ArtistName = SQLDataHelper.GetString(dataReader, ArtistName);
     track.AddedDate = SQLDataHelper.GetDateTime(dataReader, AddedDate);
    };

 DBTrackData.Add(top);
}

Quelqu'un peut-il expliquer ce que cela signifie et comment puis-je travaille autour et réaliser pour afficher les données?

Voici la méthode complète pour votre inspection:

 public static List<DBTrack> GetAllTracksFromReaderDB(IDataReader dataReader)
 {
  if (DBTrackData == null)
  {
     DBTrack track = new DBTrack();
     System.Data.DataTable data = new System.Data.DataTable();
     List<DBTrack> daa = new List<DBTrack>();
     DBTrackData = new List<DBTrack>();

     foreach (DataRow p in data.Rows)
     {

     DBTrack top = new DBTrack()
     /* ===> Error starts here */   {
     track.TrackID = SQLDataHelper.GetGuid(dataReader, TrackID); 
     track.TrackName = SQLDataHelper.GetString(dataReader, TrackName);
     track.ArtistName = SQLDataHelper.GetString(dataReader, ArtistName);
     track.AddedDate = SQLDataHelper.GetDateTime(dataReader, AddedDate);
     };

    DBTrackData.Add(top);

    }
  }
  return DBTrackData;

 }

MODIFIER:

public Guid TrackID { get; set; }
public string TrackName { get; set; }
public string ArtistName { get; set; }
public DateTime AddedDate { get; set; }

Toute aide serait génial :) Merci

Créé 10/06/2014 à 14:02
source utilisateur
Dans d'autres langues...                            


1 réponses

voix
4

Votre syntaxe est invalide pour l' initialisation du membre. Tu ne peux pas instansiate topet essayer de remplir les trackpropriétés.

Ça devrait ressembler à ça:

DBTrack top = new DBTrack
{
   TrackID = SQLDataHelper.GetGuid(dataReader, "TrackID"),
   TrackName = SQLDataHelper.GetString(dataReader, "TrackName"),
   ArtistName = SQLDataHelper.GetString(dataReader, "ArtistName"),
   AddedDate = SQLDataHelper.GetDateTime(dataReader, "AddedDate")
};
Créé 10/06/2014 à 14:09
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more