C#のdatagridviewに問題があります。mysql-databaseからクエリを介してデータを取得します。ただし、何らかの理由で、結果の最初の行のみがグリッドビューに表示されます。私はこのようなことをするために次のコードを使用します:
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ループの内容は1回だけ実行されます。ここで質問する前に、私もその事実について疑問に思っていました。しかし、MySQL-Clientでクエリを実行すると、複数の行が返されます。
更新2: whileループのコンテンツ全体がコメント化されている間、ループはクエリ結果に行があるのとまったく同じ時間に実行されることに気づきました。何か案は?
更新3: 後のすべてのようです
dataGridView1.Rows.Add(dataset);
実行されません。ループ内だけでなく、関数全体でも。しかし、なぜ?
解決した問題: ここに投稿されたコードに問題はありませんでした。dgvの行が入力されたときに、コードの残りの部分で何かを実行するイベントが発生しました。それが起こったとき、私はループが壊れたと思います。そのイベントを削除した後、dgvは適切に入力されました。