Comment faire pour convertir une Liste en DataTable
J'obtiens des valeurs à partir d'une autre table de données en entrée à la liste. Maintenant j'ai besoin de sauvegarder les valeurs de la liste dans un autre DataTable.
Liste:
List<DataRow> list = slectedFieldsTable.AsEnumerable().ToList();
foreach (DataRow dr in slectedFieldsTable.Rows)
{
list.Add(dr);
}
Nouvelle table de Données :
DataRow newRow = tempTable.NewRow();
newRow["Field Name"] = fieldLabel;
newRow["Field Type"] = fieldType;
for(int gg =0 ; gg<list.Count; gg++)
{
tempTable.Rows.Add(????);
}
Je suis coincé ici, en ajoutant des lignes à la nouvelle table de données.
InformationsquelleAutor Ganeshja | 2013-02-28
Vous devez vous connecter pour publier un commentaire.
Variable déclarer:
Ajouter une Colonne dans la Table de données:
Ajouter de la Valeur dans la Table de données:
Convertir DataTable à la Liste:
Ajouter une Colonne dans une autre Table de données:
Convertir Liste de dataTable:
utilisation CopyToDataTable() la méthode. CopyToDataTable
Essayez ceci:
La réponse de fournir le
ToDataTable
est un très bon début, mais il manque certains éléments clés. À savoir, il ignore queList
propriétés de l'élément de mai:ReadOnly
DisplayName
attributDefaultValue
qui leDataColumn
devez savoir à propos deNullable
BrowsableAttribute(false)
Ce qui suit est une méthode d'extension pour retourner un
DataTable
et comptes pour l'au-dessus ou en fournit le moyen de votre code pour les appliquer. Il utilise également unInterface
pour obtenir les valeurs à partir de la classe de l'objet plutôt que deReflection
.La méthode permet d'indiquer si les colonnes pour les non
Browsable
propriétés doivent être ajoutés à laDataTable
. Plutôt que de cacher les colonnes plus tard, vous pouvez les omettre entièrement si vous le souhaitez.Une interface prouve les moyens d'obtenir les valeurs de données de membres de la collection dans l'ordre (comme une alternative à une réflexion de la boucle):
Ajouter les valeurs de données dans le même ordre qu'ils sont inscrits dans votre classe; assurez-vous de le mettre à jour lorsque vous ajoutez des propriétés. La réflexion de la version est toujours là, donc vous pouvez le faire de toute façon.
Enfin, il y a quelques
Attribute
s qui ne sont pas liéesDataColumn
de la propriété. La méthode stocke ces pour vous commeExtendedProperties
vous permettant de facilement les appliquer à la DGV:Résultats à l'aide d'une liste de la classe indiquée ci-dessus:
Les deux
OnHand
etFoo
montrer laDisplayName
et les deuxPropA
etPropB
sont cachés. Plus important encore, les colonnes créées pourReadOnly
etNullable
propriétés agir en conséquence.