Bonjour a tous,

Alors voila mon problème, j'ai créé un logiciel en c# avec visual studio qui exploite une base de données. Le but est de savoir avec quoi est équipé un bureau et où il se situe.
Mon problème se pose lorsque je souhaite récupérer le plus grand ID_poste qui est la clef primaire de la table et qui est aussi en auto incrémentation.
Je pense que cette explication devrait suffire pour comprendre le bout de code qui ne fonctionne pas.
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
SqlConnection myConnection;
            SqlCommand myCommand;
            string myConnectionString;        
 
            myConnectionString = "user id=sa;password=password69;initial catalog=Config_bureau;data source=JO-PC\\SQLEXPRESSMAJ;Connect Timeout=10;"; // chaine de connection a la bdd
 
            string strRequete = "SELECT MAX (ID_poste) AS max FROM dbo.Poste;"; // la fameuse requete
            int id_poste = 0;            
            try
            {
                myConnection = new SqlConnection(myConnectionString);
                myConnection.Open();
                myCommand = new SqlCommand(strRequete, myConnection);
                SqlDataReader mySqDataReader = myCommand.ExecuteReader();
                {
                    if (mySqDataReader["ID_poste"] != System.DBNull.Value)
                    {
                        id_poste = (Int32)mySqDataReader["ID_Poste"];
                    }
                }
                myConnection.Close();
            }
            finally
            {
                tb_ajout_peri_ID_poste.Text = Convert.ToString(id_poste);
                // cette partie sert a ce que la text box soit pré-rempli
            }
PS: le message d'erreur est le suivant:
L'exception IndexOutOfRangeExecption n'a pas été gérer. Il pointe sur la condition if (mySqDataReader["ID_poste"] != System.DBNull.Value).
Or je ne vois pas pourquoi je devrais récupérer avec une liste ou un tableau cette info. (j'ai déjà essayé la requête sur ma base de données et elle fonctionne)

Merci pour le temps passé à lire ce message