J'importe Tableaux d'une base de données Oracle, en utilisant un VB.NET dataAdapter. J'utilise la commande "fill" pour ajouter les données importées à un DataSet. Comment est-il possible de définir une colonne spécifique d'un DataTable comme PrimaryKey, après la DataTable est déjà rempli de données?Comment définir une colonne DataTable VB.NET comme clé primaire après la création
Répondre
Vous pouvez définir la clé primaire d'une table par:
Dim table As New DataTable()
table.Columns.Add(New DataColumn("MyColumn"))
Dim primaryKey(1) As DataColumn
primaryKey(1) = table.Columns("MyColumn")
table.PrimaryKey = primaryKey
Pour pouvoir utiliser la clé primaire, vous devez vous assurer que toutes les valeurs de la colonne donnée sont uniques.
Je travaille principalement en C# et ont deux méthodes d'extension que j'utilise pour « ranger » les appels que je dois faire, que vous voudrez peut-être envisager de traduire à VB et en utilisant:
public static void SetPrimaryKey(this DataTable value, string columnName)
{
value.PrimaryKey = new DataColumn[] { value.Columns[columnName] };
}
public static DataRow FindByPrimaryKey(this DataTable value, object key)
{
return value.Rows.Find(key);
}
// I can then do:
DataTable table = CallToRoutineThatGetsMyDataTable();
table.SetPrimaryKey("PKColumnName");
DataRow result = table.FindByPrimaryKey("valueToFindWith");
Tant que les valeurs de la colonne sont uniques
table.PrimaryKey = new DataColumn[] { table.Columns["Id"] };
pour régler vos noms de colonnes.
Voici un one-liner dans VB (la question était avec "using VB.NET"). Cet exemple est avec 2 colonnes indexées:
table.PrimaryKey = New DataColumn() {table.Columns("column1"), _
table.Columns("column2")}
Mise à jour: Et voici une autre en une ligne sur la façon d'utiliser cet index 2 colonnes pour trouver une ligne:
table.Rows.Find(New Object() {value1, value2}) '<- DataRow returned
Merci pour la réponse Rob - il y a un léger problème avec la version vb bien que l'indice devrait être basé sur zéro:
Dim table As New DataTable()
table.Columns.Add(New DataColumn("MyColumn"))
Dim primaryKey(1) As DataColumn
primaryKey(0) = table.Columns("MyColumn")
table.PrimaryKey = primaryKey
- 1. Clé primaire sur une colonne
- 2. sqlite: clé primaire multi-colonne avec une colonne d'incrémentation automatique
- 3. la création d'un format de clé primaire
- 4. nhibernate: mappage vers une colonne autre que la clé primaire
- 5. C# question de clé primaire datatable
- 6. Création d'une clé primaire et d'une colonne d'identité après le chargement des données
- 7. Définir la clé primaire avec deux entiers
- 8. MySQL - utiliser la chaîne comme clé primaire
- 9. Clé primaire multi-colonne dans MySQL 5
- 10. Comment définir plus d'une clé primaire pour une table?
- 11. Comment définir le point de départ de la colonne de clé primaire (ID) dans Postgres via une migration de rails
- 12. Comment réorganiser la clé primaire?
- 13. SubSonic Clé primaire de colonne multiple
- 14. Création d'une table avec une clé primaire et une clé unique
- 15. Création d'une clé primaire sur deux colonnes
- 16. Comment référencer une colonne de clé étrangère avec plusieurs colonnes de clé primaire
- 17. marquage de la colonne existante comme clé primaire dans la donnée
- 18. Création et affichage d'une clé primaire composite complexe dans une colonne
- 19. Affectation Chaque clé primaire sa propre colonne
- 20. Comment définir une classe de ma création comme une clé dans une TreeMap (Java)
- 21. Subsonic2.2 et NEWSEQUENTIALID() Colonne de la clé primaire
- 22. varchar() clé primaire ou clé primaire int?
- 23. Supprimer la contrainte de clé primaire d'une colonne
- 24. Pouvez-vous utiliser DataTable.Contains (clé d'objet) si la clé primaire de votre datatable est deux colonnes?
- 25. Comment représenter "ALL" dans la relation clé primaire-clé étrangère
- 26. Création d'objets django avec une clé primaire aléatoire
- 27. Comment définir la clé primaire et la clé étrangère dans les données de base?
- 28. SqlServer créer une table avec MySQL comme auto_increment clé primaire
- 29. Vues MySQL dans Navicat - Comment définir «clé primaire»?
- 30. Comment puis-je définir une clé primaire BigInt avec Rails 2.1 et MySQL?