2009-03-02 8 views
1

Puis-je utiliser la classe DataTable comme ceci:autonome DataTable en .Net

DataTable client = new DataTable("client"); 

int primay_key = 1; 

DataRow row = null; 

row = client.findBy(primary_key); 

Après findBy, sera l'objet de ligne contient une ligne de la base de données?

Je ne trouve pas un exemple comme celui sur Internet, ressemble à la 0. NET construit en DataTable classe n'est pas ce que je pensais que c'était.

Répondre

0

Oui, vous pouvez utiliser un DataTable comme ça - vous pouvez essayer DataTable.Rows.Find

+0

erm, non! Le DataTable n'a été touché à rien! –

0

A DataSet/DataTable n'est pas une base de données appropriée en tant que telle. mais peut certainement être utilisé pour un modèle d'objet in momory - mais sans la plupart des fonctionnalités que vous associeriez normalement à un SGBDR.

+0

J'étais sur le point de dire "Hey Marc, vous êtes en retard", mais ensuite réalisé que vous devez être au Sommet ... –

+0

;-p En effet. Il suffit de s'arrêter quelques instants, cependant ;-p –

2

Un DataTable est un objet qui modélise une table de base de données en mémoire. En soi, un DataTable ne fait aucune sorte d'interaction de base de données. Vous devez d'abord créer un objet adaptateur de données adapté à votre système de base de données, puis l'utiliser pour remplir votre DataTable en mémoire.

Exemple:

SqlConnection conn = new SqlConnection(connectionString); 
SqlDataAdapter da = new SqlDataAdapter("SELECT * FROM Clients", conn); 
DataTable dt = new DataTable(); 
da.Fill(dt, "Clients"); 
3

Vous devrez remplir un DataTable avant de pouvoir 'requête' il:

En supposant que vous avez déjà un objet SqlCommand mis en place:

public static DataTable GetDataTable(SqlCommand cmd) 
{ 
    DataTable dt; 

    using (SqlDataAdapter da = new SqlDataAdapter()) 
    { 
     da.SelectCommand = cmd; 
     dt = new DataTable(); 
     da.Fill(dt); 
    } 
    return dt; 
} 
0

I ne veulent tout simplement pas utiliser DataAdapter pour remplir dataTable, car pour chaque table différente dans DB, je dois écrire le même code encore et encore.

Si la classe dot net dataTable n'est pas associée à la table réelle dans la base de données, existe-t-il un produit sur le marché? Un composant, un projet open source?

+0

Ce que vous cherchez s'appelle un système ORM. Il existe plusieurs systèmes ORM libres et open source, NHibernate étant le plus populaire. Si cela ne vous dérange pas de dépenser un peu d'argent, j'ai trouvé OPF3 très bon aussi. –