我有一個C#中的datagridview問題。我通過查詢從MySQL數據庫中獲取數據。但出於某種原因,只有結果的第一行顯示在gridview中。我使用下面的代碼來做這個東西:C#:DataGridView只顯示一行
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);
}
它的工作,早些時候的幾行代碼。 ^^ 你有什麼想法,問題是什麼?
UPDATE: while循環的內容只執行一次。在我問這個問題之前,我也在想這個事實。但是,如果我在MySQL客戶端中執行查詢,它將返回比一個更多的行。
更新2: 我注意到,雖然while循環的全部內容被註釋掉,環路正是因爲有在查詢結果行執行相同的時間。有任何想法嗎?
更新3: 似乎一切後
dataGridView1.Rows.Add(dataset);
不執行。不僅在循環中,而且在整個功能中。 但是爲什麼?
問題已解決: 這裏發佈的代碼沒有任何問題。我在代碼的其餘部分有一個事件,當輸入了dgv中的一行時,它執行了一些事情。發生這種情況時,我想這個循環會被打破。刪除該事件後,dgv被正確填充。
什麼dataGridView1.Rows的while循環後,計數執行完畢? – Daniel
我知道這聽起來很明顯,但你從你的命令中讀了多少行?你嘗試在你的內部放置一個斷點,while()循環來檢查它是不止一個? – openshac