Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 尝试用LINQ更新C中的数据行_C#_Linq_C# 4.0 - Fatal编程技术网

C# 尝试用LINQ更新C中的数据行

C# 尝试用LINQ更新C中的数据行,c#,linq,c#-4.0,C#,Linq,C# 4.0,我试图在DataTable中查找并更新一个特定的DataRow。根据我的搜索,我尝试了一些方法,下面的代码似乎是我能得到的最接近的代码。linq将返回一行。对于该行,我想更新列值Status、StopTime和Duration。我一辈子都找不到该怎么做。。我尝试过铸造,但我是linq新手,不知道如何更新这些值 private DataTable downloadProcStatusTable; void UpdateDataDownloadProcedureList(ProcedureStat

我试图在DataTable中查找并更新一个特定的DataRow。根据我的搜索,我尝试了一些方法,下面的代码似乎是我能得到的最接近的代码。linq将返回一行。对于该行,我想更新列值Status、StopTime和Duration。我一辈子都找不到该怎么做。。我尝试过铸造,但我是linq新手,不知道如何更新这些值

private DataTable downloadProcStatusTable;

void UpdateDataDownloadProcedureList(ProcedureStats ProcStats)          
{
      var currentStatRow = from currentStat in downloadProcStatusTable.AsEnumerable()
                           where currentStat.Field<String>("ProcedureName") == ProcStats.ProcName
                           select currentStat;
}
概述 从数据库加载现有实体,除非您有一个可以重新附加的实体,在这种情况下,您可以避免此附加查询 根据需要更新属性 使用SubmitChanges将更改提交回数据库 实施 我不确定你的变量和名称在哪里,但这应该给你一个好的开始

void UpdateDataDownloadProcedureList(ProcedureStats ProcStats)          
    {
          var currentStatRow = (from currentStat in downloadProcStatusTable.AsEnumerable()
                               where currentStat.Field<String>("ProcedureName") == ProcStats.ProcName
                               select currentStat).FirstOrDefault();

         currentStatRow.Status = ProcStats.Status;
         currentStatRow.StopTime = ProcStats.StopTime;
         currentStatRow.Duration = ProcStats.Duration;

         downloadProcStatusTable.SubmitChanges();
    }
概述 从数据库加载现有实体,除非您有一个可以重新附加的实体,在这种情况下,您可以避免此附加查询 根据需要更新属性 使用SubmitChanges将更改提交回数据库 实施 我不确定你的变量和名称在哪里,但这应该给你一个好的开始

void UpdateDataDownloadProcedureList(ProcedureStats ProcStats)          
    {
          var currentStatRow = (from currentStat in downloadProcStatusTable.AsEnumerable()
                               where currentStat.Field<String>("ProcedureName") == ProcStats.ProcName
                               select currentStat).FirstOrDefault();

         currentStatRow.Status = ProcStats.Status;
         currentStatRow.StopTime = ProcStats.StopTime;
         currentStatRow.Duration = ProcStats.Duration;

         downloadProcStatusTable.SubmitChanges();
    }

目前的查询实际上为您提供了一个IEnumerable。您需要执行以下操作才能获得实际行:

  var currentStatRow = (from currentStat in downloadProcStatusTable.AsEnumerable()
                       where currentStat.Field<String>("ProcedureName") == ProcStats.ProcName 
                       select currentStat).SingleOrDefault(); 

然后,您应该能够使用currentStatRow变量修改列值。

当前的查询实际上为您提供了一个IEnumerable。您需要执行以下操作才能获得实际行:

  var currentStatRow = (from currentStat in downloadProcStatusTable.AsEnumerable()
                       where currentStat.Field<String>("ProcedureName") == ProcStats.ProcName 
                       select currentStat).SingleOrDefault(); 
然后,您应该能够使用currentStatRow变量修改列值