Moyen Simple de convertir datarow tableau de datatable
Je veux convertir un DataRow
tableau dans DataTable
... Quelle est la façon la plus simple de faire cela?
Vous devez vous connecter pour publier un commentaire.
Je veux convertir un DataRow
tableau dans DataTable
... Quelle est la façon la plus simple de faire cela?
Vous devez vous connecter pour publier un commentaire.
Pourquoi ne pas parcourir votre DataRow tableau et ajouter (à l'aide de DataRow.ImportRow, si nécessaire, pour obtenir une copie de la DataRow), quelque chose comme:
Assurez-vous que votre dataTable a le même schéma que la des datarow dans votre DataRow tableau.
DataTable dataTable = new DataTable(); dataTable.ImportRow(dataRow); MyControl.DataSource = dataTable;
rowArray.CopyToDataTable();
parce que cela maintient le schéma de la table et n'est pas le remplacer avec le nouveau tableau d'objet!Pour .Net Framework 3.5+
Mais si il n'y a pas de lignes dans le tableau, il peut provoquer des erreurs telles que La source ne contient des datarow. Par conséquent, si vous décidez d'utiliser cette méthode
CopyToDataTable()
, vous devriez vérifier le tableau de savoir qu'il a des datarow ou pas.De référence disponible sur le site MSDN:
DataTableExtensions.CopyToDataTable Méthode (IEnumerable)
copyToDataTable()
? Je n'ai pas trouver dans .net 2.0copyToDataTable()
méthode permet de créer une copie parfaite de la colonnes des lignes sélectionnées, tandis quedatatable.ImportRow(row)
méthode ne marche pasInput array is longer than the number of columns in this table.
". Avec Clone de la Version d'Erreur: "Unable to cast object of type 'System.Data.DataRow' to type 'System.IConvertible'.Couldn't store <System.Data.DataRow> in StoreOrder Column. Expected type is Int64.
" Remarque:StoreOrder
est la première colonne dans le schéma de la table. Il semble qu'il essaie de confiture de toute la datarow dans la première colonneUn autre moyen est d'utiliser un DataView
Moyen Simple est:
Voici la solution. Il devrait fonctionner correctement.
Au cas où quelqu'un a besoin d'elle dans VB.NET:
.Net 3.5+ ajout DataTableExtensions, utilisez DataTableExtensions.CopyToDataTable Méthode
Pour datarow tableau d'utilisation .CopyToDataTable() et il sera de retour datatable.
Pour unique datarow utilisation
Vous pouvez utiliser le Système.Linq comme ceci: