Seit gestern versuche ich, diesen Wert zu ermitteln (siehe Bild), ich habe versucht, „mysqlreader,executescalar usw.“zu verwenden, aber ich kann die Anzahl der Zeilen nicht ermitteln.
Was ich tun möchte, ist Folgendes:
Wenn das Ergebnis 0 ist, muss nichts unternommen werden. Wenn es gleich 1 ist, muss ein Bild angezeigt werden. Wenn es größer als 1 ist, muss ein anderes Bild angezeigt werden
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()); } } } }Ich habe versucht, den Code hinzuzufügen, der mir @oldDog sagt, aber das Ergebnis ist immer 6
Neuer Herausgeber:
Eigentlich erscheinen 6 Zeilen.
您的问题是您正在使用 HasRows。由于您正在执行 SELECT COUNT(*),因此即使计数为零,您也将始终有一行包含计数。相反,您可以使用: