从昨天开始,我试图获取这个值(见图),我尝试使用“mysqlreader、executescalar 等”,但我无法获取行数。
我想做的是这样的:
如果结果为 0,则不执行任何操作;如果等于 1,则必须显示一幅图像;如果大于 1,则必须显示另一幅图像
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的代码,但结果始终是6
新编辑:
实际上出现了 6 行。
您的问题是您正在使用 HasRows。由于您正在执行 SELECT COUNT(*),因此即使计数为零,您也将始终有一行包含计数。相反,您可以使用: