求证下关于DataTable的rows属性

minioreo 2008-12-21 11:41:05
该属性返回的是不是table的行的克隆副本?
怎么发现修改这个返回不能改变table的行
table.rows[0][0]="haha";
...全文
151 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
minioreo 2008-12-22
  • 打赏
  • 举报
回复
我是想修改这一行
如果使用newRow["path"]=e.FullPath这样是可以的
但是如果把整个newRow用一个新对象赋值就不行 难道DataRow对象的Set访问器不让直接改变一整行?
cuike519 2008-12-22
  • 打赏
  • 举报
回复
DataTable.Rows.Add(newRow);
wuyi8808 2008-12-22
  • 打赏
  • 举报
回复
可以逐个改变行中的每个元素。
flyjimi 2008-12-22
  • 打赏
  • 举报
回复
DataRow newRow = table.Rows.Find(e.OldFullPath);
这一句只是让newRow指向了table中的一行。你修改newRow指向的行的信息是可以影响到table中的行的。
你修改newRow指向的地址,重新给指了个地址,table中的行是不会受影响的。
比如,下面这样
DataRow newRow = table.Rows.Find(e.OldFullPath);
newRow = null;
原来table中的那个行不会被你设置成null。
minioreo 2008-12-21
  • 打赏
  • 举报
回复
后面加了AcceptChanges()也没用
DataRow newRow = table.Rows.Find(e.OldFullPath);
if (newRow != null)
{
if (!CheckIfMedia(e.FullPath))
newRow.Delete();
else
{
newRow = CreateRow(e.FullPath);
}
table.AcceptChanges();

}

110,565

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧