2010-05-31 9 views
0

Je suis ici pour écrire une petite application de base de données qui sera exécutée sur le bureau (mode hors ligne). J'utilise MSAccess 2007 comme fichier de base de données et j'essaie d'écrire du code dans vb.net.Création d'une application de base de données de bureau simple

J'avais l'habitude d'écrire le code vb6 d'habitude eu des variables globales pour stocker la connexion de base de données et exécuter chaque requête de cela. J'essaie de passer de vb6 à vb.net.

Dois-je aussi lire des livres de démarrage plus simples?

Répondre

0

Dans .NET, le fait de parler à une base de données est géré avec ADO.NET, qui utilise ce que l'on appelle un «pool de connexions». Le pool de connexions est essentiellement une collection de connexions ouvertes à votre base de données qu'ADO.NET gère pour vous. Dans votre code, lorsque vous créez et ouvrez un objet Connection, ADO.NET recherche d'abord dans le pool de connexions s'il a déjà une connexion ouverte à votre source de données, et s'il en trouve un, il l'utilise (au lieu de créer et ouvrir une nouvelle connexion). Lorsque vous fermez votre connexion, ADO.NET ne le ferme pas réellement, mais le renvoie au pool de connexions.

Par conséquent, vous n'avez pas besoin (et en face ne veux pas) de maintenir les objets de connexion ouverts dans votre application (dans une variable globale ou n'importe où). L'approche correcte avec l'accès aux données dans ADO.NET consiste à créer et à ouvrir un objet Connection, à faire ce que vous devez faire avec la base de données, puis à fermer et à éliminer votre connexion.

+0

L'objet connection est le même pour l'accès et le sql – KoolKabin

+0

Oui, le regroupement de connexions s'applique quel que soit le type de base de données avec lequel vous parlez (aussi longtemps que vous utilisez ADO.NET), donc l'approche de base doit toujours être la même : créez et ouvrez un objet Connection immédiatement avant de l'utiliser, puis fermez et détruisez l'objet dès que vous en avez fini avec lui. Vous ne devriez pas stocker un objet Connection dans une variable globale (ou même de niveau classe), et vous ne devriez certainement pas le stocker dans un état Open. – MusiGenesis

+0

peut-il être justifié avec certaines raisons? – KoolKabin

0

Enregistrez la chaîne de connexion dans le fichier de configuration (dans l'explorateur de solutions, ouvrez le dossier My Project et double-cliquez sur Settings.settings). Je suggérerais que vous créiez une ou plusieurs classes pour contenir votre code de base de données et que ces classes convertissent entre les données de base de données et vos objets d'application, la plupart des projets VB6 ont vu l'interface graphique liée à la base de données. maintenance future ou de nouvelles fonctionnalités très difficile et limite la possibilité de réutilisation du code. Si vous avez l'expérience VB6, je pensais que vous pourriez probablement commencer à essayer de créer l'application tout de suite, mais vous devriez certainement lire soit un bon livre ou de bons articles à ce sujet afin que vous puissiez récupérer des choses comme cela vous devez Dispose de vos objets de base de données après l'utilisateur, etc.

+0

me permet-il de changer le nom de serveur de base de données et d'autres paramètres avant de créer la connexion. c'est à dire. si je veux passer servername, nom d'utilisateur, mot de passe n autre est-il possible? – KoolKabin

+0

Votre commentaire sur les applications VB6 ayant une possibilité limitée de réutilisation du code semble être une variante de la vieille blague: "La nourriture ici est terrible!" "Oui, et de si petites portions!" – MusiGenesis

+0

Je veux réutiliser le code mais je veux utiliser le même code avec plusieurs paramètres – KoolKabin

0

C'est probablement une bonne idée d'obtenir un livre, beaucoup a changé depuis VB6.

Pensez aussi à utiliser une base de données plus robuste, comme SQL compact ou SQLite. Cela vous permettra d'utiliser Entity Framework, ce qui rendra l'écriture de votre application beaucoup plus facile.

+0

pouvez-vous suggérer de bons livres pour les débutants? – KoolKabin

+0

En quoi SQL Server CE et SQLite sont-ils "plus robustes" que Jet/ACE pour une application de bureau mono-utilisateur? –

+0

Peut-être que les nouvelles versions d'Access sont meilleures, mais d'après mon expérience (2000-2003), nous avons eu des problèmes une fois que le nombre de lignes a commencé à augmenter (parlant de 10 à 100 de milliers). Nous avons utilisé SQLite pour certaines tables assez énormes (près de concerts) sans problème. En réalité, cela peut ne pas être un problème pour une application de bureau. La grande victoire pour moi est d'utiliser EF et LINQ. S'il y a un moyen de le faire avec Access, ce serait génial. – Doobi

Questions connexes