我有一個表,看起來像這樣:在數據表中的某些點插入一行?
Name Hours
Mark 10
Mark 15
Mark 10
Mark 13
Albert 11
Albert 12
Max 10
Max 13
該數據駐留在數據表,這是我的gridview的數據源。如果可能,我希望在Name字段更改時迭代數據表並插入一行。就像這樣:
Name Hours
Mark 10
Mark 15
Mark 10
Mark 13
Albert 11
Albert 12
Max 10
Max 13
是否可以使用foreach循環通過這個DataTable,並在名稱發生變化,在這一點上插入一行來遍歷?或者,是否有另一種方法來獲得所需的結果?
感謝您的指點!
編輯:我的代碼,到目前爲止:
var counter = 0;
var holdName = "";
// looping through datatable dt.
foreach (DataRow row in dt.Rows)
{
//compare name from dt to hold name
//if different
// insert blank row
// change hold name to new name
//continue looping
}
gridview1.Datasource = dt;
gridview1.DataBind();
,但問題是,設置在循環中保持名稱被證明是非常棘手。這就像它需要首先在循環中設置'ouside',然後在循環中進行檢查。問題是,我怎麼知道名稱是什麼,而沒有獲得數據表中的第一條記錄?也許,那是我的答案?獲取第一條記錄,將名稱放入保存名稱變量中,然後啓動foreach循環?
是的,'foreach'循環肯定會提供一個可行的解決方案。 –
插入順序應該永不重要,請改爲使用order by子句。編輯 - 等待你談論某種UI元素或數據庫表?你的意思很不清楚。 – asawyer
我同意asawyer,你不需要遍歷數據庫並插入一個特定的點。在數據庫表中插入新行,然後使用SQL以特定順序(ORDER BY子句)或過濾數據列表(WHERE子句)正確檢索數據。不要試圖讓你的UI成爲SQL Server Management Studio。 –