11
votes

SQLCOMMAND ou SQLDATAADAPTER?

Je crée quelque chose comme une petite application de caissier qui conserve des enregistrements pour les clients, les employés, les services, les ventes et les rendez-vous. J'utilise des formulaires Windows et dans ces datagramrids. J'ai créé la base de données que je vais utiliser pour l'application. Je veux savoir si je devrais utiliser SQLCOMMAND-SQLDAREAREER ou SQLDATAADAPTER-Dataset à la place. Quelle approche est la meilleure?


2 commentaires

Dupliqué possible de SqldataAdapter vs sqldatreader


Dupliqué possible de SqldataAdapter vs sqldatreader


6 Réponses :


2
votes

Si vous êtes au courant de ces composants (CORE ADO.NET) (commande, connexion, datadapter) alors je suggérerais Modèle de données d'entité ou linq-sql .

sqldataadapter est une classe d'assistance qui utilise implicitement sqlcommand , sqlconnection et sqldatreader . . .


0 commentaires

16
votes

Ceci dépend fortement du type d'opération que vous souhaitez.

Voici mon suggère.

  1. Si vous souhaitez lire des données plus rapidement, optez pour SQLDatreader, mais qui vient comme frais de fonctionnement, vous devez prendre pendant la lecture après cela aussi. Connexion ouverte Lire les données Fermer la connexion. Si vous avez oublié de fermer que cela ne frappera la performance.

  2. aller pour sqldataaadapter

    • Si vous voulez lire plus rapidement et utiliser un avantage d'une arche déconnectée. de Ado.net
    • Ceci fera automatiquement fermer / ouvrir la connexion.
    • En outre, il vous permettra également de gérer automatiquement la mise à jour dans DataSet Retour à la base de données. (SQLCOMMandBuilder)
    • Utilisez SQLCOMMAND (cela viendra également lorsque vous lisez SQLDatreader pour lire des données) et pour insérer et mettre à jour.

      • Cela vous donnera une meilleure performance pour l'insertion et la mise à jour.

        Si vous utilisez Cadre .NET 3.5 SP1 ou plus tard, je suggérerais que LINQ au cadre SQL ou entité serait également résoudre votre but.

        merci.


0 commentaires

5
votes

sqldataaDapter

  • stocke les données sur la base de données client et mises à jour si nécessaire. De sorte que ça consomme plus de mémoire.
  • D'autre part, vous n'avez pas besoin d'être connecté à votre base de données sur Insérer / Supprimer / Sélectionner / Sélectionner la commande .
  • Il gère les connexions en interne afin que vous n'auriez pas à vous soucier de cette.

    Toutes les bonnes choses de sqldataaadapter sont au coût de la consommation de mémoire plus. Il est généralement utilisé pour des systèmes nécessitant plusieurs utilisateurs connectés à la base de données.
    Donc, je dirais que si ce n'est pas votre situation, optez pour SQLCOMMAND et le modèle connecté.


0 commentaires

3
votes

Si vous ne faites que lire des données et ne pas effectuer des mises à jour / inserts / suppresses, alors sqldatreader sera plus rapide. Vous pouvez également le combiner avec un Dataset . Si vous enveloppez les objets d'accès aux données avec à l'aide des instructions , l'exécution gérera la logique de nettoyage de connexion pour vous.

Un motif que j'utilise souvent pour un accès synchrone est quelque chose comme ceci: < Pré> xxx

pour mises à jour / suppresses / inserts, un sqldataaadapter peut valoir la peine d'être examinée, mais généralement si vous avez déjà vos données dans un Dataset . Sinon, il y a des moyens plus rapides / meilleurs de faire des choses.


1 commentaires

L'adaptateur de données peut-il être un bon choix pour insérer des millions d'enregistrements (2-3 millions d'enregistrements que j'ai dans mon ensemble de données) ??



1
votes

DigneAreader - Le digne d'administration est un Seulement, flux de données lisonly de la base de données. Cela rend le digne d'information un moyen très efficace pour récupérer des données, comme un seul enregistrement est mis en mémoire à un temps. L'inconvénient: un objet de connexion ne peut contenir qu'un seul Digne de données à la fois, nous devons donc explicitement fermer le digne d'administrateur lorsque Nous en sommes terminés. Cela libérera la connexion d'autres utilisations. Les Les objets de l'adaptateur de données géreront l'ouverture et la fermeture d'une connexion pour la commande d'exécuter

DataDapter - représente un ensemble de commandes SQL et une base de données connexion utilisée pour remplir le jeu de données et mettre à jour les données la source. Il sert de pont entre un ensemble de données et une source de données pour récupérer et sauvegarder des données. Le dataDacher fournit ce pont par mappage de remplissage, ce qui modifie les données de l'ensemble de données pour correspondre aux données Dans la source de données et la mise à jour, qui modifie les données dans les données source pour correspondre aux données de l'ensemble de données. En l'utilisant, DataDapter aussi Ouvre et ferme automatiquement la connexion comme requis.


0 commentaires

0
votes

La commande SQL est plus facile mais non automatisée. Adaptateur de données SQL est moins facile mais automatisé.

* Automatisé signifie qu'il gère l'ouverture et la fermeture d'un serveur, etc. automatiquement.

Les deux partage les mêmes fonctionnalités des données


1 commentaires

Vous devez présenter comment c'est mieux via un extrait de code