bajour!
voilà, je fait une requête qui peut retourner un résultat nul c'est-à-dire qu'aucun tuple ne correspond à ce que je demande dans ma bd.
je fais donc un test pour savoir si le résultat est nul comme ça:
string MaRequete = "SELECT MAX(NUMMIS) FROM mission WHERE NUMCLI=";
MaRequete += DropDownList_clients.SelectedItem.Value;
odbcCommand_mission.CommandText = MaRequete;
odbcCommand_mission.Connection = odbcConnection_mission;
odbcConnection_mission.Open();
OdbcDataReader MonDataReader;
MonDataReader=odbcCommand_mission.ExecuteReader();
bool res=MonDataReader.Read();
int nb_missions;
if(res)
nb_missions=MonDataReader.GetInt32(0);
else
nb_missions=0;
nb_missions++;
Label_nummission.Text=nb_missions.ToString();
MonDataReader.Close();
odbcConnection_mission.Close();
mais ça ne fonctionne pas du tout, en fait ça génère une erreur du genre je ne peut pas faire ça:
"nb_missions=MonDataReader.GetInt32(0);"
quelqu'un a une idée????
merci d'avance!
Dans la vie faites comme les canards: paraissez zen et serain à la surface et pédalez comme un dingue en dessous!
Pourquoi passer par un getint32 ?
Tu as essaye d'afficher simplement le resultat dans un textbox ?
Pour deja etre sur que tq requette te renvoie un resultat
ba en fait, j'ai un peu changé mon code, jestement pour faire 2 cas:
si réponse non vide alors je récupère,
sinon, je met le int à 0...
je fais comme ça:
Pour le moment, on se fout de l'affichage, il faut deja savoir (avant de vouloir l'afficher), si ton datareader renvoie des valeurs ou non.
Je ne pense pas que ca soit le cas pour le moment, ensuite le "MonDataReader.GetInt32(0);" je trouve la syntaxe etrange et je me mefie toujours des id de colonne.
A ta place je modifierai ma requette pour nommer le champs retourne comme ceci :
> SELECT MAX(NUMMIS) AS MonMax ....
Du coup dans ton Reader, le champs sera nomme et non gere par un Numero.
La sortie sur le datagrid est une sortie simple permettant de tester ton reader