Mettre datatable valeurs séparées par des virgules dans une chaîne de caractères
Ma datatable se compose d'une colonne nommée "ID". Le pas de. de valeurs dans cette colonne varie.Parfois, ce Datatable extrait 3 Id dans cette colonne ID, parfois 2.
Maintenant, si par exemple, ma datatable a trois valeurs 1,2,3. Ce que je veux, c'est de mettre ces trois valeurs dans une chaîne de caractères et de les séparer par des virgules comme épouse:-
string test= "1,2,3";
Si Datatable a 2 valeurs, puis de la chaîne doit être comme suit:-
string test= "1,2";
J'ai essayé, mais en vain. S'il vous plaît aider. Merci.
edit:-
DataTable dt=new DataTable;
dt = obj.GetIDs();
for (int i = 0; i < dt.Rows.Count; i++)
{
string test= "What should be here????";
}
edit 2
foreach(DataRow dr in dt.Rows)
{
string str = str + "," + Convert.ToString(dr("ID"));
}
@Rajeev ::Essayé..il dit que le dr est une variable, mais il est utilisé comme une méthode. Quel est le problème?
Voulez-vous dire que, parfois, trois lignes sont extraites, ou que le contenu de la colonne d'ID d'une ligne dans la base de données contient la valeur "1,2,3" par exemple?
Avez-vous un exemple de code en cours?
Oui,je voulais dire que parfois, les 3 lignes sont extraites, sometimes2 dans la datatable.
J'ai édité.Désolé.
concernant votre dernière modification: vous êtes à l'aide de dr que si c'est une fonction qui récupère une chaîne de caractères passée en paramètre; peut-être
Avez-vous un exemple de code en cours?
Oui,je voulais dire que parfois, les 3 lignes sont extraites, sometimes2 dans la datatable.
J'ai édité.Désolé.
concernant votre dernière modification: vous êtes à l'aide de dr que si c'est une fonction qui récupère une chaîne de caractères passée en paramètre; peut-être
dr["ID"]
fonctionnera mieux, bien que j'en doute. Essayez d'utiliser un autre foreach à l'intérieur de la première itération sur les éléments de la dr: foreach(var s in dr) str += s.ToString() + ", ";
OriginalL'auteur Serenity | 2011-02-04
Vous devez vous connecter pour publier un commentaire.
Quelque chose comme ceci:
string output;
devrait êtrestring output = string.Empty;
ou= ""
selon mon Visual Studio 2015 IDE.OriginalL'auteur Dave
Juste un liner à l'aide de LINQ.
OriginalL'auteur decyclone
À l'aide de linq, faites comme ceci:
Cela on fixe votre dernier exemple
Votre problème est que vous tentez d'appeler
dr("ID")
, mais le docteur n'est pas une méthode implicite par votre syntaxe. Utilisationdr["ID"]
au lieu d'obtenir l'ID de la colonne de votre ligne.Cependant, cette dernière approche permettrait également de donner le résultat ",1,2,3", afin de mieux vous réécrire comme ça (ou utiliser mon LINQ variante):
Ok, j'ai fait des recherches et le bon linQ devrait être
string result = string.Join(",", dtBibliography.AsEnumerable().Select(r => r.Field<string>("ID")).ToArray());
Ce que le diable, je me sens généreux, voici votre +1 ;-ÞOublié que ToArray. Merci de me le rappeler 🙂
OriginalL'auteur Øyvind Bråthen
Comment obtenir datatable colonne à une chaîne Séparée par des Virgules (CSV) dans ASP.NET C# à l'aide de Linq.
Option 1:
Option 2:
Remarque: Veuillez importer le package
using System.Linq;
OriginalL'auteur Manjunath Bilwar
Si je comprends bien, vous avez une Datatable qui a a n lignes et 1 colonne (ID, qui est).
Si dt est la Datatable, alors vous pourriez faire une boucle par la ligne de la collection:
Serait-ce de travailler pour vous?
Plz vérifier mon édité ques ..thnx..j'ai mis en œuvre comme tu dit mais il y a un problème.
Utilisez le dr["ID"] au lieu de dr("ID"). Mon code était en VB, désolé pour ça.
OriginalL'auteur Rajeev Nair