IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Exception en base de données


Sujet :

C#

  1. #1
    Membre actif
    Inscrit en
    Avril 2008
    Messages
    81
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 81
    Par défaut Exception en base de données
    Salut a tous,
    j'ai un problème, en essayant de se connecté avec la base de données un message d'erreur s'affiche dont le texte est le suivant:
    A first chance exception of type 'System.Data.SqlClient.SqlException' occurred in System.Data.SqlClient.dll
    Je developpe sur SmartDevice

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
     
    System.Data.SqlClient.SqlConnection con;
                            System.Data.SqlClient.SqlCommand cmd;
                            System.Data.SqlClient.SqlDataReader dr;
     
                            try
                            {
                                con = new System.Data.SqlClient.SqlConnection(@"Data Source=C:\Users\Amine\Documents\Visual Studio 2008\Projects\SmartDeviceProject2\SmartDeviceProject2\Produit.sdf");
                                con.Open();
                                cmd = new System.Data.SqlClient.SqlCommand("select * from Prod where (code=' "+tbCode.Text+" ')", con);
                                dr = cmd.ExecuteReader();
                                while (dr.Read())
                                {
                                     multiLineBox.Text = dr.GetString(4);
                                }
                                dr.Close();
                                con.Close();
                            }
     
                            catch (System.Data.SqlClient.SqlException exc1)
                            {
                                Console.WriteLine("SqlException, Erreur numéro " + exc1);
                            }
                            catch (Exception exc)
                            {
                                Console.WriteLine("Exception, Erreur numéro " + exc);
                            }

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 99
    Par défaut
    Et c'est toi qui la "catch" ? A mon avis non sinon tu aurais donné le code erreur.

  3. #3
    Membre actif
    Inscrit en
    Avril 2008
    Messages
    81
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 81
    Par défaut
    Citation Envoyé par realpasso Voir le message
    Et c'est toi qui la "catch" ? A mon avis non sinon tu aurais donné le code erreur.
    Le catch est obligatoire lorsqu'on aura un problème de connection, exepmle pas de source, ....
    mais a propos de la source ede base j'ai suis sure qu'il est vrai et aussi de la structure de la table et la requete

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 99
    Par défaut
    Ce n'était pas ma question. Est ce que l'exception arrive dans ton bloc catch ? Tu affiches un numéro d'erreur ?

    A mon avis non, donc décoche la case "quand l'exception est levée" dans le menu debug/exception.

  5. #5
    Membre actif
    Inscrit en
    Avril 2008
    Messages
    81
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 81
    Par défaut
    Citation Envoyé par realpasso Voir le message
    Ce n'était pas ma question. Est ce que l'exception arrive dans ton bloc catch ? Tu affiches un numéro d'erreur ?

    A mon avis non, donc décoche la case "quand l'exception est levée" dans le menu debug/exception.

    j'ai rien compris!!!
    mais en tout cas je pense que l'erreur n'est pas au niveau du catch

  6. #6
    Membre chevronné Avatar de MetalGeek
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 412
    Par défaut
    Salut,

    mets un point d'arrêt dans tes 'catch', regarde la valeur de InnerException de l'erreur catchée, et dis-nous ce qu'il en est.

    Sinon, as-tu accès à ton fichier .sdf dans l'explorateur de serveurs de Visual Studio ? Si oui, exécute ta requête manuellement pour voir ce que ça donne.

  7. #7
    Modérateur
    Avatar de sevyc64
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    10 254
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 254
    Par défaut
    Si tu es sur smartdevice tu dois surement être sur un SQLServer Compact Edition (SQLServer CE), ce que confirme l'utilisation d'un fichier sdf

    Dans ce cas, je ne pense pas qu'il faille utiliser l'assembly System.Data.SqlClient. Il vaut mieux utiliser l'assembly System.Data.SqlServerCE

    ou alors utiliser la classique System.Data.OleDB

  8. #8
    Membre chevronné Avatar de MetalGeek
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 412
    Par défaut
    je ne pense pas qu'il faille utiliser l'assembly System.Data.SqlClient. Il vaut mieux utiliser l'assembly System.Data.SqlServerCE
    Bien vu ! Je suis presque sûr que le problème vient de là (enfin, maintenant que sevyc64 m'y a fait penser lol...)

  9. #9
    Membre actif
    Inscrit en
    Avril 2008
    Messages
    81
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 81
    Par défaut
    Je vous remercie tous, mais j'ai déja essayé avec "System.Data.SqlServerCe" et toujours je tombe dans le même problème.
    voice le nouveau code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
    System.Data.SqlServerCe.SqlCeConnection con;
    System.Data.SqlServerCe.SqlCeCommand cmd;
    System.Data.SqlServerCe.SqlCeDataReader dr;
    try
    {
          con = new System.Data.SqlServerCe.SqlCeConnection(@"Data Source=C:\Users\Amine\Documents\Visual Studio 2008\Projects\SmartDeviceProject2\SmartDeviceProject2\Produit.sdf");
          con.Open();
          cmd = new System.Data.SqlServerCe.SqlCeCommand("select * from Prod", con);
          dr = cmd.ExecuteReader();
          while (dr.Read())
          {
                multiLineBox.Text = dr.GetString(4);
          }
          dr.Close();
          con.Close();
    }
     
    catch (System.Data.SqlServerCe.SqlCeException exc1)
    {
          Console.WriteLine("SqlException, Erreur numéro " + exc1);
    }
    catch (Exception exc)
    {
          Console.WriteLine("Exception, Erreur numéro " + exc);
    }
    Le message affiché est le même:
    A first chance exception of type 'System.Data.SqlServerCe.SqlCeException' occurred in System.Data.SqlServerCe.dll

  10. #10
    Membre actif
    Inscrit en
    Avril 2008
    Messages
    81
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 81
    Par défaut
    Je pense que le problème se trouve au niveau de

  11. #11
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 99
    Par défaut
    Bon, je n'ai pas dû être clair ou j'ai rien compris. D'après ton code, si tu "catches" l'exception tu affiches la stack, dis nous ce que ça affiche.

    EDIT: Désolé, je viens de relire je n'avais effectivement rien compris.
    Est ce que tu as essayé de mettre le chemin entre quotes ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    con = new System.Data.SqlClient.SqlConnection("Data Source=\"C:\Users\Amine\Documents\Visual Studio 2008\Projects\SmartDeviceProject2\SmartDeviceProject2\Produit.sdf\"");

  12. #12
    Membre actif
    Inscrit en
    Avril 2008
    Messages
    81
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 81
    Par défaut
    J'ai remarqué qu'il m'affiche un erreur
    Cannot process 'Produit.sdf' because it is not an EDMX file.

    Est ce que quelqu'un connais la cause de cette erreur?

  13. #13
    Membre confirmé
    Inscrit en
    Avril 2009
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 50
    Par défaut
    Essaye d’exécuter ton programme pas à pas et donnes nous exactement la source du problème, sinon essaye de change ton connectionString

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Data Source=MyData.sdf;Persist Security Info=False;

    ou peut être

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Data Source=" + (System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase) + "\\MyData.sdf;Persist Security Info=False;
    sinon peut etre il y' a un problem dans ta base des données et ce qui est vraiment rare

  14. #14
    Membre chevronné Avatar de MetalGeek
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 412
    Par défaut
    Est-ce que tu as accès ou non à ta base dans l'explorateur de serveurs de VS ?
    Sachant qu'un fichier 'edmx' c'est quand tu utilises Entity Framework... Essaie de te connecter à ton fichier dans un projet console tout simple, sans Entity ni rien, pour voir si ça passe.

  15. #15
    Membre actif
    Inscrit en
    Avril 2008
    Messages
    81
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 81
    Par défaut
    Citation Envoyé par =sdoula Voir le message
    Essaye d’exécuter ton programme pas à pas et donnes nous exactement la source du problème, sinon essaye de change ton connectionString

    Data Source=MyData.sdf;Persist Security Info=False;


    ou peut être

    Data Source=" + (System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase) + "\\MyData.sdf;Persist Security Info=False;

    sinon peut etre il y' a un problem dans ta base des données et ce qui est vraiment rare
    Ca marche bien, merci a vous tous
    le syntaxe est le suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    con = new System.Data.SqlServerCe.SqlCeConnection("Data Source=" + (System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase)) + "\\Produit.sdf;Persist Security Info=False");
    Le syntaxe que j'ai utilisé au début marche en asp, c'est du copier/coller de la source fournie par le connectionString.

    Est ce que quelqu'un peut me dire qu'est ce que ce veut dire le
    Cannot process 'Produit.sdf' because it is not an EDMX file.
    car l'erreur reste jusqu'a maintenant, et le programme fonctionne correctement.

  16. #16
    Membre confirmé
    Inscrit en
    Avril 2009
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 50
    Par défaut
    je ne suis pas vraiment sure mais essaye ce que MetalGeek t'a proposé
    comment ta généré ton SDF? je crois que le probleme vient de la

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. exception lors de l'attachement d'une base de donnée
    Par marwa21 dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 02/05/2011, 22h46
  2. Réponses: 0
    Dernier message: 11/02/2009, 13h57
  3. Réponses: 19
    Dernier message: 14/01/2008, 15h52
  4. Gestion exception Base de données Oracle
    Par Tatoine dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 16/07/2007, 20h57
  5. Problème de base de données avec Zend exception PDO
    Par websurfeur dans le forum Zend Framework
    Réponses: 8
    Dernier message: 20/04/2007, 17h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo