Est-il possible en C# d'utiliser un OleDbAdapter et d'utiliser sa méthode Update pour un jeu de données quand une table n'a pas de clé primaire et comment puis-je faire cela?C#: Mettre à jour le jeu de données sans clé primaire
Répondre
Here's an example dans VB, ce qui pourrait vous donner une idée générale.
Pouvez-vous ajouter une clé primaire?
Sans une sorte d'identifiant unique (qui devrait être le PK), il n'y a aucun moyen de savoir quelle ligne mettre à jour.
Vous pouvez toujours trouver une ligne à l'aide myTable.Select("myColumn Like 'unique value'");
j'ai eu le même problème lorsque j'ai utilisé une base de données tiers. Ils n'ont pas de clés primaires dans leur base de données, mais ils ont une combinaison de champs uniques.
D'abord, créez une datatable et remplissez-la avec le résultat de la requête en utilisant la condition unique.
DataTable dt = new DataTable();
OleDbDataAdapter adapter = new OleDbDataAdapter();
adapter.SelectCommand = new OleDbCommand(sqlstring, ACCESS_dbConnection);
adapter.Fill(dt);
Ensuite, remplacez ds avec vos données mises à jour par colonne.
foreach (DataColumn col in datarow.Columns)
{
Debug.WriteLine(col.ColumnName);
ds.Rows[0][col.ColumnName] = datarow.Rows[0][col.ColumnName];
}
Ensuite, vous pouvez mettre à jour.
OleDbCommandBuilder cb = new OleDbCommandBuilder(adapter);
adapter.UpdateCommand = cb.GetUpdateCommand();
adapter.InsertCommand = cb.GetInsertCommand();
adapter.Update(ds);
Cela fonctionne pour moi.
Ne le faites que si vous êtes sûr qu'il n'y en a qu'une à une seule requête. Si ce n'est pas le cas, vous voudrez peut-être ajouter "if" à la vérification
- 1. comment mettre à jour un enregistrement sans se soucier de la clé primaire
- 2. AU LIEU DE LA MISE À JOUR Déclencher et mettre à jour la clé primaire
- 3. Mettre à jour la clé primaire de la table dans une autre base de données
- 4. mettre à jour un jeu de données correspondant à une base de données à partir de son datagridview
- 5. ADO.NET EF clé primaire composite - ne peut pas mettre à jour la clé étrangère
- 6. Comment mettre à jour le jeu de données avec l'affichage DataGrid C#
- 7. Beaucoup-plusieurs sans clé primaire
- 8. mise à jour du jeu de données C# asp
- 9. Au lieu de déclencher la mise à jour clé primaire
- 10. TableAdapter - mise à jour sans clé
- 11. mettre à jour la clé primaire des tables maître et enfant pour les grandes tables
- 12. Modifier chaque enregistrement dans une table sans clé primaire?
- 13. Comment mettre à jour les tables parent et enfant du jeu de données avec la clé d'identité générée automatiquement?
- 14. varchar() clé primaire ou clé primaire int?
- 15. Besoin de mettre à jour la clé primaire sur les objets existants dans GAE Java
- 16. C# question de clé primaire datatable
- 17. mettre à jour le jeu de données en utilisant join et bindingsource?
- 18. Meilleure façon de "mettre à jour" les enregistrements existants dans le jeu de données lié à XML
- 19. Comment mettre à jour la clé primaire de la table qui est référencée comme clé étrangère dans une autre table?
- 20. Comment mettre à jour l'objet sans hypothèses, les données
- 21. Mettre à jour l'assembly de service Windows sans le redémarrer?
- 22. Le tableau n'a pas de clé primaire
- 23. Créer une table de jointure sans clé primaire
- 24. Où est la clé primaire de l'objet que je veux mettre à jour dans django en utilisant modelform?
- 25. Mettre à jour WPF ListBoxItem sans ListBox.Items.Refresh()?
- 26. Comment mettre à jour le statut Twitter de C#?
- 27. Supprimer ou mettre à jour un jeu de données dans HDF5?
- 28. Insérer ou mettre à jour sans boucle?
- 29. recherche par clé primaire
- 30. Clé primaire d'importation DataMapper