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 :

Probleme avec Select max()


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    238
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations forums :
    Inscription : Mai 2006
    Messages : 238
    Par défaut Probleme avec Select max()
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    OleDbConnection oCnx = null;
    oCnx = new OleDbConnection(ConfigurationManager.ConnectionStrings["DBMysqlCnx"].ToString());
    oCnx.Open();          
    OleDbCommand oCde1 = new  OleDbCommand();
    oCde1.Connection = oCnx;
    oCde1.CommandText = "select max(id) from matable";
                    //oCde.ExecuteReader();
                    int IdDoc = oCde1.ExecuteScalar();
    j'essaye d'exécuter mon code mais j'ai toujours un message d'erreur que j'arrive pas résoudre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    La référence d'objet n'est pas définie à une instance d'un objet.
       à System.Data.OleDb.OleDbDataReader.GetRowHandles()
       à System.Data.OleDb.OleDbDataReader.ReadRowset()
       à System.Data.OleDb.OleDbDataReader.Read()
       à System.Data.OleDb.OleDbDataReader.HasRowsRead()
       à System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior behavior, String method)
       à System.Data.OleDb.OleDbCommand.ExecuteScalar()
    Merci les amis

  2. #2
    Membre émérite
    Homme Profil pro
    Référent technique
    Inscrit en
    Juillet 2007
    Messages
    834
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Référent technique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 834
    Par défaut
    Bonjour, tu peux essayer ça:

    int MaxId = 0;
    try
    {
    MaxId = (int)
    oCde1..ExecuteScalar();
    }

    catch (Exception e)
    {
    }


    Ou sinon, si tu ne l'as pas fait, regardes si ta requête fonctionne bien ou renvoie un résultat...(mais je suppose que tu as déjà regardé )


    Cordialement.
    Rémi

  3. #3
    Membre expérimenté Avatar de AJemni
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2008
    Messages
    242
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2008
    Messages : 242
    Par défaut
    Essay le OleDbDataReader :
    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
     
            OleDbConnection oCnx = null;
            OleDbDataReader dr = null;
            int IdDoc = 0;
            try
            {
                oCnx = new OleDbConnection(ConfigurationManager.ConnectionStrings["DBMysqlCnx"].ToString());
                oCnx.Open();
                OleDbCommand oCde1 = new OleDbCommand();
                oCde1.Connection = oCnx;
                oCde1.CommandText = "select max(id) as MaxId from demande";
                dr = oCde1.ExecuteReader();
                if(dr.Read())
                    IdDoc = (int)dr["MaxId"];
                dr.Close();
            }
            catch (Exception ex)
            {
                if (dr != null)
                    if (!dr.IsClosed) dr.Close();
                throw ex;
            }

  4. #4
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Par défaut


    Et pour quel raison passer par un DataReader pour récuperer un scalaire ?

  5. #5
    Membre confirmé
    Inscrit en
    Janvier 2006
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 50
    Par défaut
    il faut d'abord t'assurer que ta requête marche bien toujours, et ensuite puisque le ExecuteScalar retourne un objet s'assurer de son cast en le type du id.

  6. #6
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 197
    Par défaut
    Citation Envoyé par Bluedeep Voir le message


    Et pour quel raison passer par un DataReader pour récuperer un scalaire ?
    vu la pile des appels c'est bien ce qu'il se passe pourtant ^^
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

Discussions similaires

  1. probleme avec select max
    Par Kasanova75 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 19/09/2009, 09h57
  2. Probleme avec select max
    Par gsaylat dans le forum Langage SQL
    Réponses: 2
    Dernier message: 27/08/2007, 14h14
  3. Probleme lié avec select MAX
    Par otari dans le forum Langage SQL
    Réponses: 9
    Dernier message: 20/06/2007, 20h28
  4. [EJB3][HIBERNATE] Probleme avec select max
    Par kristof_machin dans le forum Hibernate
    Réponses: 2
    Dernier message: 26/04/2006, 13h05
  5. Probleme avec Select Case
    Par GeffD dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 07/03/2005, 15h28

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