Depuis hier, j'essaie d'obtenir cette valeur (voir photo), j'ai essayé d'utiliser "mysqlreader,executescalar, etc." mais je n'arrive pas à obtenir le nombre de lignes.
Ce que je veux faire, c'est ceci :
Si le résultat est 0, ne faites rien ; s'il est égal à 1, une image doit être affichée ; s'il est supérieur à 1, une autre image doit être affichée
private void patient() { if (OpenEventMissionData.Rows.Count != 0) { foreach (DataGridViewRow row in OpenEventMissionData.Rows) { string idevent = row.Cells[1].Value.ToString(); string sql = "SELECT COUNT(*) FROM patient INNER JOIN event WHERE patient.ID_EVENT = " + "'" + idevent + "'" + "AND evento.EVENT_OPEN = 1;"; MySqlConnection connection = new MySqlConnection(); connection.ConnectionString = ConfigurationManager.ConnectionStrings["dbx"].ConnectionString; MySqlCommand cmd = new MySqlCommand(sql, connection); connection.Open(); MySqlDataReader reader = cmd.ExecuteReader(); if (reader.HasRows) { DataGridViewButtonColumn patient = new DataGridViewButtonColumn(); OpenEventMissionData.Columns.Add(new PatientColumn()); } } } }
J'ai essayé d'ajouter le code qui me dit @oldDog mais le résultat est toujours 6
Nouvel éditeur :
En fait, 6 lignes apparaissent.
Votre problème est que vous utilisez HasRows. Puisque vous effectuez un SELECT COUNT(*), vous aurez toujours une ligne contenant le nombre, même si le nombre est nul. À la place, vous pouvez utiliser :