1
我試圖從數據表填充一個gridview。但是,當我運行代碼時,Gridview中什麼也沒有顯示出來。下面是代碼:填充的GridView從數據表
string serverIP = drpServer.SelectedItem.Value.ToString();
ManagementObjectSearcher searcher = new ManagementObjectSearcher(@"\\" + serverIP + "\\root\\CIMV2", "SELECT * FROM Win32_PerfFormattedData_PerfProc_Process");
foreach (ManagementObject query in searcher.Get())
{
var processName = query["Name"];
var processID = query["IDProcess"];
var cpuTime = query["PercentProcessorTime"];
var memUsage = query["WorkingSet"];
double newMemUsage = Convert.ToDouble(memUsage);
newMemUsage = newMemUsage/1024;
DataTable dt = new DataTable();
dt.Columns.Add("ProcessName", typeof(string));
dt.Columns.Add("ProcessID", typeof(int));
dt.Columns.Add("CPUTime", typeof(string));
dt.Columns.Add("MemoryUsage", typeof(string));
DataRow row = dt.NewRow();
row["ProcessName"] = processName;
row["ProcessID"] = processID;
row["CPUTime"] = cpuTime;
row["MemoryUsage"] = newMemUsage;
dt.Rows.Add(row);
GridView1.DataSource = dt;
GridView1.DataBind();
我喜歡的管理對象搜索器比使用Diagnostics.Process這就是爲什麼我要這條路線更好。
我已經創建了我的GridView中綁定字段爲好。
謝謝。我沒有注意到。我做了改變,現在看起來正在填充,但所有的行都是空白的。我將調試並查看這些值是否正在寫入。 – Matt
沒問題。這可能是您的查詢本身的問題。如果你在'double newMemUsage'處設置了一個斷點,你應該能夠看到是否有'processName'等值。然後你可以在'foreach'的最後括號處設置另一個斷點,以查看'dt'包含結果集中的任何值(在Watch或Locals下)。 – grovesNL
我通過這個在控制檯應用程序,所以我可以繞過gridview和數據被寫入控制檯。從我的下拉菜單中獲得正確的值可能存在問題。我會調試,看看。感謝您的幫助。 – Matt