Copier une DataRow dans une dataTable [Résolu]

cs_thebigboss 216 Messages postés jeudi 30 janvier 2003Date d'inscription 12 avril 2017 Dernière intervention - 24 juin 2012 à 21:14 - Dernière réponse : cs_thebigboss 216 Messages postés jeudi 30 janvier 2003Date d'inscription 12 avril 2017 Dernière intervention
- 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 

Votre réponse

5 réponses

Meilleure réponse
BasicInstinct 1471 Messages postés mardi 5 février 2002Date d'inscription 20 octobre 2014 Dernière intervention - 28 juin 2012 à 11:38
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

Merci BasicInstinct 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 102 internautes ce mois-ci

Commenter la réponse de BasicInstinct
BasicInstinct 1471 Messages postés mardi 5 février 2002Date d'inscription 20 octobre 2014 Dernière intervention - 26 juin 2012 à 10:03
0
Merci
Salut,

Il faut cloner le datarow.

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

BasicInstinct
Commenter la réponse de BasicInstinct
cs_thebigboss 216 Messages postés jeudi 30 janvier 2003Date d'inscription 12 avril 2017 Dernière intervention - 27 juin 2012 à 21:27
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
cs_thebigboss 216 Messages postés jeudi 30 janvier 2003Date d'inscription 12 avril 2017 Dernière intervention - 27 juin 2012 à 21:43
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
cs_thebigboss 216 Messages postés jeudi 30 janvier 2003Date d'inscription 12 avril 2017 Dernière intervention - 28 juin 2012 à 13:26
0
Merci
Merci ça marche impec!!!



A+

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

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.