recherche

Maison  >  Questions et réponses  >  le corps du texte

Obtenez la valeur de MySQL

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.

P粉323374878P粉323374878308 Il y a quelques jours617

répondre à tous(1)je répondrai

  • P粉668146636

    P粉6681466362024-04-07 12:44:55

    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 :

    if (Convert.ToInt32(reader[0]) > 0)

    répondre
    0
  • Annulerrépondre