我对 C# 中的 datagridview 有疑问。我通过 mysql 数据库的查询获取数据。但是由于某种原因,gridview 中只显示了结果的第一行。我使用以下代码来执行此操作:
MySqlCommand command = new MySqlCommand(query, Globals.Connection);
reader = command.ExecuteReader();
while (reader.Read())
{
object[] dataset = new object[7];
dataset[0] = reader["sto_name"];
dataset[1] = reader["esss"];
dataset[2] = reader["onl_name"];
dataset[3] = reader["rpc_id"];
if (reader["datum_aufstellung"].ToString() != "0")
{
dataset[4] = getDate(reader["datum_aufstellung"]);
}
else
{
dataset[4] = "Kein Datum gesetzt";
}
if (reader["datum_abbau"].ToString() != "0")
{
dataset[5] = getDate(reader["datum_abbau"]);
}
else
{
dataset[5] = "Kein Datum gesetzt";
}
dataset[6] = reader["id"];
dataGridView1.Rows.Add(dataset);
}
它起作用了,之前的几行代码。^^ 你有什么想法,问题是什么?
更新: while 循环的内容只执行一次。在我在这里问我的问题之前,我也想知道这个事实。但是,如果我在 MySQL 客户端中执行查询,它会返回多于一个的行。
更新2: 我注意到,虽然注释了while循环的全部内容,但循环的执行时间与查询结果中的行完全相同。有任何想法吗?
更新3: 似乎之后的一切
dataGridView1.Rows.Add(dataset);
不执行。不仅在循环中,而且在整个函数中。但为什么?
问题已解决: 此处发布的代码没有任何问题。当输入 dgv 中的一行时,我在其余代码中有一个事件,它执行了一些操作。我想当这种情况发生时,循环中断了。删除该事件后,dgv 已正确填充。