如何使用LINQ C#更新数据表中的datarow?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用LINQ C#更新数据表中的datarow?相关的知识,希望对你有一定的参考价值。

我想在某些条件下更新datatable(dtTaskandBugs)。 当id(这是Datatable的一列)作为参数传递给function GetStoryid时,想要更新数据表中所有行的storyid。这是我的代码下面它没有工作(没有发生)

  dtTaskandBugs.Select(string.Format("Storyid = '{0}'", dtTaskandBugs.Rows)).ToList<DataRow>().ForEach(
                r =>
                {
                    r["Storyid"] = GetStoryid(r["Id"]);
                });
答案

错误在这里:

string.Format("Storyid = '{0}'", dtTaskandBugs.Rows)

您将此表中的行数作为参数传递给过滤行的DataTable.Select,因此可能不会返回任何行。

我建议一个简单的foreach循环,因为你想要更新所有行:

foreach(DataRow row in dtTaskandBugs.Rows)
      row ["Storyid"] = GetStoryid(row["Id"]);

以上是关于如何使用LINQ C#更新数据表中的datarow?的主要内容,如果未能解决你的问题,请参考以下文章

C# 中的GetEnumerator方法,C# DataTable几个常用的查询表达式,C#的lINQ怎么用干啥用的

尽管为它们分配了值,但 DataRows 仍为 null

项目中遇到的 linq datatable select

错误:当传递带有修改行的 DataRow 集合时,更新需要有效的 UpdateCommand

MySqlDataAdapter.update()不会使用DataRelation更新DataRow

您如何正确快速地比较 Datarows / Datatables?