begin process at 2010 02 10 01:56:47
  Trouver un code source :
 
dans
 
Accueil > Forum > 

VB.NET et VB 2005

 > 

Base de données

 > 

Autre

 > 

La meilleure façon de gérer une base ?


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

La meilleure façon de gérer une base ?

vendredi 8 mai 2009 à 12:35:56 | La meilleure façon de gérer une base ?

Papymuzo

Bonjour,

Je poste ce message car j'ai une question par rapport à la méthode de codage pour relier un programme à une base Access en OleDB.

Je me demande comment s'y prendre pour que ce soit le plus efficace :

               - Est-ce qu'on doit récupérer chaque table dans un DataSet, puis mettre dans une table la recherche que l'on effectue par le biais de requêtes SQL ? (En gros on aurait la table Table1, Table2, Table3... TableRecherche).
               - Est-ce qu'on doit récupérer, dans un DataSet, uniquement la recherche que l'on souhaite ? (Donc uniquement la table TableRecherche, ce qui impose des requêtes SQL fréquentes).

               - Afin d'updater des données sur la base, est-ce qu'il vaut mieux utiliser un DataRow que l'on ajoute à notre table, puis que l'on update avec un DataAdapter ? (Méthode "classique" pour updater des données via un DataSet).
               - Ou alors est-il préférable d'utiliser uniquement des requêtes SQL (INSERT INTO... UPDATE TABLE... etc) ?

En vous remerciant,

-Papymuzo-
samedi 9 mai 2009 à 10:50:30 | Re : La meilleure façon de gérer une base ?

Mayzz

Membre Club
Salut,

Pour ma part, je procède comme suis:

Je sépare totalement SQL/VB, je balance toutes mes requêtes dans des TableAdapter (d'un DataSet)
et j'appelle les procédure dans le code behind, c'est simple et pratique, chaque TableAdapter possede sa propre DataTable.

Le soucis est peut etre que cela obligue a 'Séparer' un peu les requêtes, on ne peu pas tout mettre dans un TableAdapter, à moins d'avoir des requête donnant un DataTable identique pour tout le programme.

Voilou 
 
@+
samedi 9 mai 2009 à 12:28:39 | Re : La meilleure façon de gérer une base ?

Papymuzo

Salut,

Je n'ai jamais entendu parler de TableAdapter, mais je vais essayer de regarder comment ça marche ;)

Sinon, je vais essayer de faire comme ça : stocker chaque table dans une table du DataSet (afin d'avoir "tout sous la main"), puis créer une table nommée TRecherche (par exemple), dans laquelle j'effectuerai toutes mes requêtes SELECT.

Ensuite, je ferai des INSERT ALL, INSERT INTO etc, au lieu d'utiliser une DataRow.

Je pense que ce système est plus fiable, et protège des erreurs (à condition de bien organiser sa base).

Qu'en pensez-vous ?

-Papymuzo-

samedi 9 mai 2009 à 16:24:37 | Re : La meilleure façon de gérer une base ?

Mayzz

Membre Club
Re,

Pour les données le DataSet est idéal.

Comment ca marche ? C est simple, tu ouvre ton dataset tu fait un click doit dans un espace vide et dans le menu tu sélectionne 'Ajouter' => 'TableAdapter',
en suite, tu crée ta 1ère requête SELECT SQL qui portera un nom pour être ensuite appelé comme une procédure vb classique dans le code behind.
De la, un TableAdapter va être créé et un modèle de Table basé sur ta requête, exemple:

Supposons que j'ai une table 'Products' dans ma base de données, que mon Dataset se nomme 'Stock' et que
ma requête select sera nommé par exemple 'GetAllProducts'

SELECT Product_ID, Product_Name, Product_Ref
FROM Products

Et j'aurais donc un dataset nommé par défaut 'ProductsTableAdapter' et un schéma de table relié à celui-ci nommé 'Products' qui ressemble à cela :

Product_ID
Product_Name
Product_Ref


Dans mon dataset je peu ensuite rajouter autant de procédures que je veux (et pas spécialement des SELECT), du moment que les informations retournés par celles-ci soit au même schéma de table, Exemple:

Je veux créer une requête GetProductByID, qui va me retourné qu'une ligne dans ma table, celle du produit spécifié:

SELECT Product_ID, Product_Name, Product_Ref
FROM Products
WHERE Product_ID = @Product_ID

cette requête correspont car elle retourne les même colonnes que la requête maitre (Product_ID, Product_Name, Product_Ref) mais la requête :

SELECT Product_ID
FROM Products
WHERE Product_ID = @Product_ID
 
affichera un avertisssment car elle retourne un schéma de table différent de la requête pricipale. Pour créer une tel requête il faudra alors recréer un TableAdapter.

Pour utiliser les données dans le code c'est ensuite très simple, il faut instancier les Tables et TableAdapter comme des classes existantes:

Dim TA as New StockTableAdapters.ProductsTableAdapter
Dim T as Stock.ProductsTable = TA.GetAllProducts' <== Appel de la requête SELECT et replissage de la table 'T'


En Suite il suffit de parcourir les données de la table

Dim R As Stock.ProductsRow
For Each R In T.Rows
    Dim ProductID as String = R.Product_ID
    Dim ProductName As String = R.Product_Name
    [...]
Next

Voila pour le petit tuto vite fait en espérant que cela t'aidera (j'ai fait ca de tête j'ai peut-être commis des erreur en ce qui concerne les noms...)

@+









Cette discussion est classée dans : base, table, sql, dataset, requêtes


Répondre à ce message

Sujets en rapport avec ce message

excel connexion base de données [ par pepez ] Bonjour!!!je suis en train de développer une petite application sous excel, access (et sql server)Le problème que j'ai est que j'ai une table SQL serv pb excel connexion base de données [ par pepez ] Bonjour!!!je suis en train de développer une petite application sous excel, access (et sql server)Le problème que j'ai est que j'ai une table SQL serv Ajouter des données à une table SQL [ par gorby69 ] Bonjour,Je veux importer un fichier Excel dans une base SQL.J'arrive à récupérer les données dans le fichier Excel.J'arrive à me connecter et à créer Performances base SQL [ par gorby69 ] Bonjour à tous,J'attaque une base SQL 2000 Serveur en ASP. Je sais c'est pas le bon site mais c'est celui ou il y a à priori le plus de passage...Le p requete sql sous VB [ par spike62300 ] Bonjour tout le monde,je vous explique. J'ai une base oracle avec un tas d 'information. J'ai décidé de prendre uniquement les infos necessaires de la DataSet - DataGrid [ par djcool74 ] Bonjour à Tous Je suis en train de réaliser une application qui accède a une Base de Données Access. J'utilise une connection OleDB.Je remplis dans mo AIDE : Remplir combobox avec une table SQL [ par Fabfranck ] Bonjour, je commence une aplication VB et ma connexion est établie avec ma base SQL avec OLEDB. Je dois maintenant remplir ("peupler") mon combobox av DataSet Mis à jour [ par EvilGost ] Bonjour à tous amis développeurs,Je vous expose mon soucis.J'ai une base Access et une application sur 2 postes différents, qui accèdent tous deux à c Base de donnée [ par molbento ] Bonjour, j'ai une question de base de donné a vous posé j'aimerais créer une table contenant 2 colonnes. La première colone est identifiant est le nom Vérification de l'existence d'une table SQL [ par casy ] Salut à tous, pour une fois j'ai une question à poser.Je voudrais savoir si, via une requette SQL, il est possible de savoir si une table existe dans


Nos sponsors


Sondage...

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,328 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales