Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/36.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# 根据特定条件C从数据表中删除记录#_C#_Asp.net_Linq - Fatal编程技术网

C# 根据特定条件C从数据表中删除记录#

C# 根据特定条件C从数据表中删除记录#,c#,asp.net,linq,C#,Asp.net,Linq,我有一个带有以下列的数据表(dtProperty): 财产ID 列表项 室友 RateId 房间序列 我有两个变量RoomCount和PID,它们的值对于PropertyId、RoomId、RateId的特定组合是已知的。Roomsequence的所有值都应该小于等于RoomCount 如果RoomCount的值为3且PID=10212,则对于PropertyId、RoomId、RateId::1021220103101(在本例中)的部分值,RoomSequence的值应为1,2,3 如果Pro

我有一个带有以下列的数据表(dtProperty):

  • 财产ID
  • 列表项
  • 室友
  • RateId
  • 房间序列
  • 我有两个变量RoomCount和PID,它们的值对于PropertyId、RoomId、RateId的特定组合是已知的。Roomsequence的所有值都应该小于等于RoomCount

    如果RoomCount的值为3且PID=10212,则对于PropertyId、RoomId、RateId::1021220103101(在本例中)的部分值,RoomSequence的值应为1,2,3

    如果PropertyId、RoomId、RateId的任何部分组合不符合标准,则我们

    应从数据表中删除该行

    在下表中,我们只保留前3行和后3行

    PropertyId  RoomID  RateID   RoomSequence
    10212       2010    3101     1
    10212       2010    3101     2
    10212       2010    3101     3
    10212       2011    3100     3
    10212       2012    3101     1
    10212       2012    3101     2
    10212       2014    3101     1
    10212       2014    3101     2
    10212       2014    3101     3
    
    var filteredTable=(来自dtRoom.AsEnumerable()中的行)
    
    where row.Field(“RoomSequence”)那么问题是什么呢?RoomCount==RoomSequence吗?质量差的问题不会吸引很多答案……你不只是想过滤数据而不是删除它吗?如果是这样,你可以使用LINQ对数据进行排序
        var filteredTable = (from row in dtRoom.AsEnumerable()
          where row.Field<int>("RoomSequence") <=
          GetRoomCount(row.Field<int>("PropertyId"), 
                       row.Field<int>("RoomId"), 
                       row.Field<int>("RateID"))
        select row); //ToDataTable()