2010-09-20 3 views
11

J'ai quelques valeurs dans un DataGridRow (item Array) et je veux récupérer toutes ces valeurs dans un tableau de chaînes. Comment puis-je atteindre cet objectif?Comment puis-je convertir DataRow en chaîne de caractères?

DataGridRow row = (DataGridRow)Lst.ItemContainerGenerator.ContainerFromIndex(k); 
      DataRowView Drv = (DataRowView)row.Item; 
      DataRow dr = (DataRow)Drv.Row; 
+0

Quel est le contenu des lignes de données vous? La réponse dépend de cela. –

Répondre

12

Une possibilité est d'appeler dr.ItemArray; Cela vous obtenir un object[]. Ensuite, vous devez lancer chaque objet à string avant de l'utiliser.

6
var rowAsString = string.Join(", ", dr.ItemArray.Select(c => c.ToString()).ToArray()); 

Cela devrait vous donner une chaîne avec chaque élément de votre rangée de données séparé par une virgule.

+2

Seule une réponse acceptable. D'autres réponses lanceront une erreur si et de l'élément ne sont pas du type chaîne. – nelek

+0

Comment ça marche ?! DataRow (dr) n'a pas Select (et certainement pas Selct ;-)) –

+0

:-) Oups! Il y avait deux fautes de frappe dans la réponse. D'abord, j'avais oublié d'accéder à l'ItemArray et en second lieu le nom de la méthode devrait bien sûr être Select ;-) –

23
var rowAsString = string.Join(", ", dataTable.Rows[0].ItemArray); 

Aucun besoin d'expression lambda comme ci-dessus.

6

LINQ ajoute du sucre:

var stringArray = dr.ItemArray.Cast<string>().ToArray() 
Questions connexes