Win32_SystemDriverの値をDataGridView
に追加しようとしていますが、終了するまで読み込みます。すべてのデータのロードが終了すると、クエリの最後の値のすべての行が変更されます。これはコードですDataGridViewにC#でデータをロードする
ObjectQuery query8 = new ObjectQuery("SELECT * FROM Win32_SystemDriver");
ManagementObjectSearcher searcher8 =
new ManagementObjectSearcher(scope, query8);
foreach (ManagementObject queryObj in searcher8.Get())
{
DataTable dt = new DataTable();
dt.Columns.Add("Descrição");
foreach (DataGridViewRow oItem in dataGridView1.Rows)
{
dt.Rows.Add(new object[] { queryObj["Description"] });
}
dataGridView1.DataSource = dt;
}
このコードについてはどうなりましたか?なぜすべてのデータを読み込んだ後、すべての行がクエリの最後の値に変更されるのでしょうか?
これは私が自分でそれを解決する方法である:
ObjectQuery query8 = new ObjectQuery("SELECT * FROM Win32_SystemDriver");
ManagementObjectSearcher searcher8 =
new ManagementObjectSearcher(scope, query8);
DataTable dt = new DataTable();
dt.Columns.Add("Descrição");
foreach (ManagementObject queryObj in searcher8.Get())
{
dt.Rows.Add(new object[] { queryObj["Description"] });
}
dataGridView1.DataSource = dt;
を削除する必要が
Descrição 'は既にこのDataTableに属しています – Rekcs
@Rekcsすべての 'ManagementObject'クエリに対して1つの列しか持ちませんか? –
@Rekcsおそらくループ外でも移動するべきです。私は私の答えを編集しました –