query = (from s in dt.AsEnumerable() where s["YsKinds"].ToString().Contains(hd.Value) select s).First();
TempDR = query;//復制給新行
TempDR["yskinds"] = dropzjsubject.Text; TempDR["bzr"] = dropzjbzr.Text;//給新行賦值
UpdateRows.Add(TempDR);//Ilist添加新行
foreach (DataRow ds in dt.Rows)
{
Response.Write(ds["YsKinds"].ToString() + " " + ds["bzr"].ToString() + "<br/>");//結果居然是新行賦值后的值?難道dr也駐留的?
}
1 回答

犯罪嫌疑人X
TA貢獻2080條經驗 獲得超4個贊
TempDR = query;//復制給新行
這不是復制,這是賦值,對于引用類型,是指定引用,也就是說 TempDR 和 query 指向同一個 DataRow.
你應該用 DataRow.Clone() ,克隆一個新的 DataRow.
- 1 回答
- 0 關注
- 674 瀏覽
添加回答
舉報
0/150
提交
取消