2009-07-31 7 views
2

Je reçois des informations dans un Dataset, et je voudrais le transformer en un objet de type fortement. Par exemple, mon jeu de données ont:Comment convertir un ensemble de données en objet de type fort?

TableName: tab_data
lignes: 1
colonnes: Nom, Prénom, Adresse

donc j'ai créé une classe comme:

public class Customer 
{ 
public String Name; 
public String FirstName; 
public String Address; 
} 

Y at-il un astuce magique pour simplement convertir mon ensemble de données en type de client? Utiliser LiNQ?

Merci,

Répondre

2

Vous ne pouvez pas jeter , mais vous pouvez traduire les données ...

La réponse est probablement différente pour 1 table que pour 20; sur une base individuelle, vous devriez juste être capable de Select sur les données (ou alternativement, just iterate) - ce sera l'option la plus rapide, mais il y a beaucoup de maintenance si vous avez beaucoup de tables. Dans ce dernier cas, une sorte de réflexion, perhaps like so.

4

Y at-il une raison quelconque vous n'avez pas créé un DataSet fortement typé pour commencer? Ce serait probablement la solution la plus simple.

Vous pouvez certainement convertir chaque DataTable en (par exemple) un List<Customer> en utilisant l'extension AsEnumerable-DataTable et une projection qui crée un Customer d'un DataRow si vous avez vraiment besoin.

0

Voici un exemple de comment convertir un dataset en objet fortement typé. Dans certaines situations, nous obtenons des données dans un ensemble de données via une autre source qui peut ne pas être fortement typée. Mais Dataset nous permet de convertir des données en objets fortement typés.

List<Customer> CustomerList = 
         (from row in ds.Tables[0].AsEnumerable() 
         select new Customer 
         { 
         Name = row.Field<string>("Name"), 
         FirstName = row.Field<string>("FirstName"), 
         Address = row.Field<string>("Address") 
         }).ToList(); 
Questions connexes