Copier une DataRow dans une dataTable

Résolu
cs_thebigboss Messages postés 216 Date d'inscription jeudi 30 janvier 2003 Statut Membre Dernière intervention 12 avril 2017 - 24 juin 2012 à 21:14
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!!!!!!!!!
A voir également:

5 réponses

BasicInstinct Messages postés 1470 Date d'inscription mardi 5 février 2002 Statut Membre Dernière intervention 20 octobre 2014 12
28 juin 2012 à 11:38
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
3
BasicInstinct Messages postés 1470 Date d'inscription mardi 5 février 2002 Statut Membre Dernière intervention 20 octobre 2014 12
26 juin 2012 à 10:03
Salut,

Il faut cloner le datarow.

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

BasicInstinct
0
cs_thebigboss Messages postés 216 Date d'inscription jeudi 30 janvier 2003 Statut Membre Dernière intervention 12 avril 2017 2
27 juin 2012 à 21:27
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!!!!!!!!!
0
cs_thebigboss Messages postés 216 Date d'inscription jeudi 30 janvier 2003 Statut Membre Dernière intervention 12 avril 2017 2
27 juin 2012 à 21:43
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!!!!!!!!!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_thebigboss Messages postés 216 Date d'inscription jeudi 30 janvier 2003 Statut Membre Dernière intervention 12 avril 2017 2
28 juin 2012 à 13:26
Merci ça marche impec!!!



A+

*******************************************
SharpDevelop est mon ami! CSharpFR.com aussi!!!!!!!!!
0
Rejoignez-nous