從昨天開(kāi)始,我試圖取得這個(gè)值(見(jiàn)圖),我嘗試使用“mysqlreader、executescalar 等”,但我無(wú)法取得行數(shù)。
我想做的是這樣的:
# 如果結(jié)果為 0,則不執(zhí)行任何操作;如果等於 1,則必須顯示一幅圖像;如果大於 1,則必須顯示另一個(gè)圖像
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()); } } } }
我嘗試添加告訴我@oldDog的程式碼,但結(jié)果始終是6
新編輯:
#實(shí)際上出現(xiàn)了 6 行。
您的問(wèn)題是您正在使用 HasRows。由於您正在執(zhí)行 SELECT COUNT(*),因此即使計(jì)數(shù)為零,您也將始終有一行包含計(jì)數(shù)。相反,您可以使用:
if (Convert.ToInt32(reader[0]) > 0)