Copier une DataRow dans une dataTable [Résolu]

Messages postés
216
Date d'inscription
jeudi 30 janvier 2003
Statut
Membre
Dernière intervention
12 avril 2017
- - Dernière réponse : cs_thebigboss
Messages postés
216
Date d'inscription
jeudi 30 janvier 2003
Statut
Membre
Dernière intervention
12 avril 2017
- 28 juin 2012 à 13:26
Bonjour,

je n'arrive pas à faire un truc tout simple. J'ouvre une base de donnée access que je copie dans un dataset. Si je lie ce dataset à mon datagrid tout se passe bien.

Maintenant je souhaite n'afficher que certaines lignes dans mon datagrid.

DataTable dt_result=new DataTable();

foreach(DataRow dr in ds.Tables[str_source].Rows)
{
if(dr[column_to_search].ToString().Contains(tbx_valeur_a_recherche.Text))
         dt_result.Rows.Add(dr);
}
this.dataGrid1.DataSource = dt_result;


Lorsque je fais ce petit code dans un try/catch j'ai un soucis lorsque j'ajoute dr à dt_result.

J'ai beau chercher sur le forum je ne trouve pas d'exemple à ce problème. Est-il trop simple pour que personne n'ait posé la question auparavant ?

Merci pour votre aide.

A+

*******************************************
SharpDevelop est mon ami! CSharpFR.com aussi!!!!!!!!!
Afficher la suite 

5 réponses

Meilleure réponse
Messages postés
1471
Date d'inscription
mardi 5 février 2002
Statut
Membre
Dernière intervention
20 octobre 2014
10
3
Merci
c'est normale j'ai dit des betises... ca m'apprendra a repondre sans verifier :

dt_result ne possede pas de colonnes c'est pour ca.

//copie la structure
dt_result=ds.Tables[str_source].Clone();

//2 possibilité pour copier la datarow: 
dt_result.ImportRow(dr);
//ou
dr_result.Rows.Add(dr.ItemArray)



BasicInstinct

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 116 internautes nous ont dit merci ce mois-ci

Commenter la réponse de BasicInstinct
Messages postés
1471
Date d'inscription
mardi 5 février 2002
Statut
Membre
Dernière intervention
20 octobre 2014
10
0
Merci
Salut,

Il faut cloner le datarow.

dt_result.Rows.Add(dr.Clone());

BasicInstinct
Commenter la réponse de BasicInstinct
Messages postés
216
Date d'inscription
jeudi 30 janvier 2003
Statut
Membre
Dernière intervention
12 avril 2017
2
0
Merci
Merci, mais sauf erreur de ma part un datarow n'a pas de proprietés "Clone".
J'ai donc essayé avec
dt_result.Rows.Add(dr.Table.Clone());


Mais ça ne marche toujours pas (ArgumentException: Le tableau en entrée est plus long que le nombre de colonne de cette table)

A+

*******************************************
SharpDevelop est mon ami! CSharpFR.com aussi!!!!!!!!!
Commenter la réponse de cs_thebigboss
Messages postés
216
Date d'inscription
jeudi 30 janvier 2003
Statut
Membre
Dernière intervention
12 avril 2017
2
0
Merci
En essayant avec:
dt_result.ImportRow(dr);


Je n'ai plus d'erreur mais mon datagrid est rempli de lignes vides ...

A+

*******************************************
SharpDevelop est mon ami! CSharpFR.com aussi!!!!!!!!!
Commenter la réponse de cs_thebigboss
Messages postés
216
Date d'inscription
jeudi 30 janvier 2003
Statut
Membre
Dernière intervention
12 avril 2017
2
0
Merci
Merci ça marche impec!!!



A+

*******************************************
SharpDevelop est mon ami! CSharpFR.com aussi!!!!!!!!!
Commenter la réponse de cs_thebigboss