J'ai une application winforms C# qui a un seul datagridview pour afficher le contenu d'une table dans une base de données mySQL. Est-il possible d'avoir le datagridview refléter les changements à la base de données en temps réel? c'est-à-dire lorsque je fais une modification directe de la table, cela montrera que le changement dans le datagridviewest-il possible d'avoir une mise à jour de datagridview automatiquement lorsque la base de données est mise à jour?
Répondre
Il est possible, oui, actuellement conseillé, probablement non. La technologie que vous recherchez est appelée "comet" et est une architecture de type serveur-poussoir. Dans une application web, cela va à l'encontre de ce qui est actuellement supporté, fiable et facilement maintenable. Les options incluent l'exécution d'un serveur Web à partir du navigateur et de faire des rappels et des conversations persistantes de xmpp mais aucun qui est vraiment attrayant à moins que vous ayez absolument besoin de ce comportement maintenant.
HTML 5 arrive avec web sockets qui devrait rendre ce comportement souhaitable plus accessible, mais il faudra probablement attendre quelques années avant qu'un large soutien se produise. Envisagez d'interroger un service Web en utilisant ajax et en effectuant des actualisations de pages partielles et sélectives plutôt que d'implémenter une véritable architecture push http.
La réponse courte est non. Vous devrez mettre en place une sorte de mécanisme d'interrogation. Si cette fonctionnalité était d'une importance significative pour votre application, SQL Server 2008 R2 dispose d'une technologie appelée StreamInsight qui vous permet, au niveau de la base de données, de regarder le flux de données (avant même qu'il atteigne le disque) et de déclencher des événements et en théorie, il peut être possible d'utiliser un mécanisme pour déclencher les mises à jour dans votre application. Je suis assez certain que MySQL ne contient pas de technologie comparable.
Ce ne serait également que "en temps quasi réel". Je suppose que vous voulez dire que vous voulez que le DataGrid soit mis à jour chaque fois qu'il y a de nouvelles données, ce qui ne serait pas en temps réel.
C'est théoriquement possible, mais c'est très gênant et ne semble pas très natif pour travailler avec des bases de données. D'une manière générale, les DB constituent une source très importante de données en temps réel. Si vous voulez des données en temps réel, vous devriez travailler avec une source de données push en temps réel (il y en a beaucoup, principalement orientées vers les données financières).
J'ai implémenté un système (dans SQL Server, pas MySQL, mais peut-être vous pouvez faire la même chose) en utilisant des déclencheurs de mise à jour et des procédures stockées natives. Une procédure stockée native est simplement une DLL de code non géré qui implémente une certaine interface et une qui peut être appelée à partir d'un déclencheur SQL.
La séquence des événements est à peu près comme suit:
- code managé ouvre un fichier d'accord sur le système de fichiers (permet de l'appeler fichier « regarder ») avec
FileSystemWatcher
et définit un rappel lorsque le fichier est modifié. - La mise à jour déclenche le déclenchement et appelle la procédure stockée native.
- La procédure stockée native "touche" le fichier de surveillance, mettant à jour son champ modifié de données.
FileSystemWatcher
déclenche un rappel, après quoi nous savons que les données ont été modifiées, donc nous le recharger à partir de la base de données.
Vous ne pouvez pas faire cela d'une manière simple. Cependant, il existe une classe SqlDependency (link) que vous pouvez utiliser mais pas avec mySQL.Si quelqu'un est intéressant, (here) est un autre lien vers la documentation de SQL Server. Quoi qu'il en soit, vous devriez vraiment considérer si cette fonctionnalité est nécessaire en raison de l'impact énorme sur l'efficacité de la DB et le trafic réseau.
Jetez un oeil à BindingSource et INotifyPropertyChanged (pour vos objets).
- 1. mise à jour datagridview
- 2. Mise à jour de DataGridView/DataSet
- 3. Comment puis-je mettre à jour mes données JTable automatiquement lorsque la base de données est mise à jour?
- 4. Mise à jour de la variable de chemin Windows lorsque Java est mis à jour automatiquement?
- 5. Connexion à une autre base de données mysql et mise à jour des tables de base de données lorsqu'une autre base de données est mise à jour
- 6. Mise à jour d'une base de données dorsale sur la mise à jour logicielle avec Java
- 7. Aucune mise à jour possible avec la base de données répliquée et mise à jour via tableadapter
- 8. jQuery - Si une base de données est mise à jour, mettre à jour la page
- 9. jquery mise à jour de la page lors de la mise à jour db
- 10. JPA - la base de données est mise à jour uniquement lorsque la méthode est @Transactional
- 11. Mise à jour automatique de la liaison de données
- 12. problème de mise à jour des données dans un datagridview via une mise à jour de la requête dans la base de données d'accès 2007?
- 13. Est-il possible d'écouter la mise à jour de la base de données relationnelle?
- 14. mise à jour des lots de données
- 15. La mise à jour du schéma de base de données d'infrastructure ADO.NET Entity est-elle possible?
- 16. Oracle mise à jour la base de données de production
- 17. Est-il possible de faire une 'mise à jour sale'?
- 18. Mise à jour de base de données asynchrone dans Django?
- 19. Est-il possible de faire une mise à jour groupée?
- 20. Est-il possible de programmer une mise à jour svn?
- 21. Mise à jour de déclencheur sur DataTable lié à DataGridView
- 22. Système de base de données ou de mise à jour pour une application iPhone à jour?
- 23. Commande de mise à jour de base de données
- 24. DataGridView décale la ligne sur la mise à jour
- 25. Comment RequiredFieldValidator arrête-t-il automatiquement la mise à jour de la base de données?
- 26. Comment faire NHibernate Changer automatiquement une colonne "Mise à jour"
- 27. Cant Mise à jour la base de données MySQL
- 28. Cocoa Touch Mise à jour UITableView de base de données
- 29. Est-il possible pour une application Android de s'installer automatiquement et d'exécuter une mise à jour?
- 30. Symfony 1.4 - Mise à jour de la valeur cachée lorsque le formulaire est mis à jour
Il parle Winforms, pas Webforms. –
oups ... ma réponse est complètement indépendante: ( – Tahbaza