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#

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    238
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations forums :
    Inscription : Mai 2006
    Messages : 238
    Points : 103
    Points
    103
    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 éprouvé
    Homme Profil pro
    Référent technique
    Inscrit en
    Juillet 2007
    Messages
    834
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

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

    Informations forums :
    Inscription : Juillet 2007
    Messages : 834
    Points : 1 219
    Points
    1 219
    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 actif 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
    Points : 290
    Points
    290
    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 : 63
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

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


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

  5. #5
    Membre du Club
    Inscrit en
    Janvier 2006
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 50
    Points : 42
    Points
    42
    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 sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 172
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 172
    Points : 25 112
    Points
    25 112
    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 ^^

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