Sejak semalam saya cuba mendapatkan nilai ini (lihat gambar), saya telah cuba menggunakan "mysqlreader, executescalar, dll."
Apa yang saya mahu lakukan ialah ini:
Jika hasilnya 0, jangan lakukan apa-apa; jika sama dengan 1, imej mesti dipaparkan; jika lebih besar daripada 1, imej lain mesti dipaparkan
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()); } } } }
Saya cuba menambah kod yang memberitahu saya @oldDog tetapi hasilnya sentiasa 6
Editor baharu:
Sebenarnya 6 baris muncul.
Masalah anda ialah anda menggunakan HasRows. Memandangkan anda melakukan SELECT COUNT(*), anda akan sentiasa mempunyai baris yang mengandungi kiraan, walaupun kiraan adalah sifar. Sebaliknya anda boleh menggunakan: