Share via


Dépannage de l'accès aux données dans Visual Studio

Mise à jour : novembre 2007

Cette rubrique répertorie quelques problèmes courants qui se produisent lors de l'utilisation de l'accès aux données dans Visual Studio.

Impossible d'accéder lors de l'exécution à une base de données à laquelle j'ai accès au moment du design

Le problème est sans doute dû au nom d'utilisateur et au mot de passe passés lors de l'exécution et dont l'accès à la base de données est refusé. La solution dépend des méthodes d'authentification et d'autorisation utilisées dans la base de données, ainsi que de la chaîne de connexion.

Une cause possible de ce problème est :

  • Le fait de sélectionner l'option Utiliser un nom d'utilisateur et un mot de passe spécifiques et de ne pas sélectionner l'option Autoriser l'enregistrement du mot de passe lorsque vous terminez de remplir la boîte de dialogue Ajouter une/Modifier la connexion (Ajouter/Modifier une connexion, boîte de dialogue (Général)). Dans ce scénario, vous êtes invité à saisir un nom d'utilisateur et un mot de passe lorsque vous tentez de vous connecter à la source de données au moment du design. Pour la connectivité lors de l'exécution, vous devez intégrer une fonctionnalité dans votre application afin de passer le nom d'utilisateur et le mot de passe appropriés à la source de données.

Éléments à vérifier :

  • Vérifiez que le nom d'utilisateur et le mot de passe utilisés par votre application disposent des autorisations appropriées pour accéder à la source de données.

  • Vérifiez que l'utilisateur dispose des autorisations nécessaires dans la base de données.

  • Vérifiez qu'il existe une connexion réseau entre l'ordinateur exécutant l'application et la source de données.

Des paramètres de sortie incorrects ou manquants sont retournés lors de l'exécution d'une commande SQL

Cela est probablement dû à une valeur incorrecte de la propriété Direction du paramètre. La valeur affectée à la propriété Direction du paramètre est une valeur définie dans l'énumération ParameterDirection.

  • Vérifiez que la valeur affectée à la propriété Direction du paramètre est une valeur pouvant recevoir des données (Output pour les paramètres de sortie).

  • Vérifiez que le type de données du paramètre est le même que le type de données de la valeur de retour attendue.

    Remarque :

    Les paramètres de sortie sont retournés à la fin du flux de données, de sorte que si vous utilisez l'objet DataReader (SqlDataReader, par exemple), vous devez le fermer ou lire les données jusqu'à la fin pour que les paramètres de sortie soient visibles.

Pour plus d'informations sur les paramètres de sortie qui ne sont pas retournés ainsi que pour obtenir un exemple de code, recherchez l'article Q308051 sur le site Web du Support Technique Microsoft (https://www.microsoft.com/france/support).

Je reçois l'erreur « Le fournisseur SQL de données .NET (System.Data.SqlClient) requiert Microsoft Data Access Components (MDAC) 2.6 ou version ultérieure »

Le Kit de développement logiciel (SDK) Windows et le package .NET Framework redistribuable n'incluent pas l'installation de MDAC. Toutes les applications .NET Framework qui utilisent des fonctionnalités d'accès aux données nécessitent MDAC 2.6 ou une version ultérieure (MDAC 2.8 SP1 recommandée). La dernière version de MDAC peut être téléchargée à partir du site Web Microsoft (https://www.microsoft.com).

Dans la mesure où Visual Studio installe MDAC par défaut, cette erreur a plus de chances de se produire lors du déploiement sur un ordinateur sur lequel Visual Studio n'est pas installé.

Lorsque vous déployez votre application, vous pouvez faire en sorte que le programme d'installation vérifie la version de MDAC sur l'ordinateur sur lequel est effectué le déploiement. Pour plus d'informations, consultez Comment : ajouter une condition de lancement pour MDAC (Microsoft Data Access Components).

Je reçois une exception inattendue lorsque je tente de valider ou de restaurer une transaction

Lorsqu'une erreur au niveau de la source de données entraîne la restauration immédiate d'une transaction, l'une des erreurs suivantes peut être levée dans l'application :

  • « La requête COMMIT TRANSACTION n'a pas de BEGIN TRANSACTION correspondante »

  • « La requête ROLLBACK TRANSACTION n'a pas de BEGIN TRANSACTION correspondante »

Bien que ce comportement soit lié à la conception, il est toujours préférable d'appeler des méthodes qui accèdent à des sources de données externes (telles que les méthodes Commit etRollback) à partir d'une instruction Try...Catch. Pour plus d'informations, consultez Comment : utiliser le bloc try/catch pour intercepter des exceptions (Visual Basic) ou try-catch (Référence C#).

Je reçois une exception InvalidOperationException lorsque je tente de supprimer des tables d'un groupe de données

Lorsqu'un groupe de données est lié à un XmlDataDocument, l'appel à la méthode Clear lève l'exception suivante :

System.InvalidOperationException : Impossible d'ajouter ou de supprimer des tables du DataSet une fois que le DataSet est mappé à un document XML chargé.

L'effacement des données d'un groupe de données lié à un objet XmlDataDocument nécessite de naviguer dans la table et de supprimer les objets DataRow individuels. Pour plus d'informations sur la suppression de lignes de données d'une table de données, consultez Comment : supprimer des lignes d'un DataTable et Méthode DataRowCollection.RemoveAt.

Les légendes ne sont pas correctes lorsque je fais glisser des éléments de la fenêtre Sources de données

Lorsque vous faites glisser des éléments de la fenêtre Sources de données, les noms de colonnes sont modifiés selon une expression régulière par défaut. Si le nom de colonne contient un caractère minuscule suivi d'un caractère majuscule, un espace est ajouté pour fractionner les deux mots. En outre, tout trait de soulignement dans le nom de colonne est remplacé par un espace. Pour plus d'informations sur le contrôle de ce comportement, consultez Comment : personnaliser la façon dont Visual Studio crée des légendes pour les contrôles liés aux données.

L'extraction et l'affichage de données semblent lents

Si votre projet utilise un Composant BindingSource, essayez d'affecter la valeur False à RaiseListChangedEvents. Cela empêche les événements ListChanged de se produire dans la liste et peut augmenter les performances dans les groupes de données volumineux.

Une fois l'installation sur Windows 2000 terminée, l'application échoue et un avertissement indique que MDAC 2.8 est requis

Toutes les applications qui font référence à l'espace de noms System.Data nécessitent Microsoft Data Access Components (MDAC) version 2.8 ou ultérieure. Dans la plupart des cas, le fichier est déjà installé dans le cadre du système d'exploitation. Sur les ordinateurs qui exécutent Windows 2000 avec Service Pack 3 ou version ultérieure, il peut s'avérer nécessaire d'installer ce composant avec l'application. Pour ce faire, ajoutez ce composant au package du programme d'amorçage et téléchargez le fichier sur le site Microsoft lors de l'installation. Pour plus d'informations, consultez Déploiement des composants requis (Visual Studio).

Les valeurs générées par une base de données lors de l'insertion ou de la mise à jour retournent la valeur NULL pour les classes LINQ to SQL

LINQ to SQL gère automatiquement les valeurs générées par une base de données pour les colonnes identity (incrémentation automatique), rowguidcol (GUID généré par la base de données) et timestamp. Les valeurs générées par une base de données dans les autres types de colonne entraînent une valeur null de manière inopinée. Pour retourner les valeurs générées par une base de données, vous devez affecter la valeur true à IsDbGenerated et l'une des valeurs suivantes à AutoSync : Always, OnInsert ou OnUpdate.

Voir aussi

Concepts

Nouveautés des données

Vue d'ensemble de l'affichage des données

Autres ressources

Procédures pas à pas relatives aux données

Mise en route avec l'accès aux données

Connexion aux données dans Visual Studio

Préparation de votre application pour recevoir des données

Extraction de données dans votre application

Affichage des données sur des formulaires dans les applications Windows

Modification des données dans votre application

Validation des données

Enregistrement des données

LINQ to SQL