仅在两条记录之间迭代加载表中的下一条记录 Linq C# Npgsql

LavsTo

在我的视图/页面上,我在页面加载时加载 1 条记录,每次单击下一个按钮时,我打算加载表中的下一个(一个)记录,一直持续到最后一个。所以我正在用下一条记录刷新页面。

[点击下一个按钮时查看]

现在,当单击下一个按钮时,我有以下内容

在视图中

<a class="form-group" style="float: left; margin-right: 5px;">
  <input type="submit" value="Next" name="NextRecordButton" class="btn btn-primary" />
</a>

在控制器中

if (NextRecordButton == "Next" && Request.HttpMethod == "POST")
        {
            /*keep track of the current id on page*/
            string idOnView = Request.Form["q_guid"];
            var currentRowId = Guid.Parse(idOnView);

            /*select next id*/
            var myNext = db.q_product.Where(i => i.q_guid != currentRowId)
                .OrderBy(i => i.q_guid)
                .Skip(1)
                .First().q_guid;

            ViewBag.NextProduct = myNext;
            var idNext = Convert.ToString(ViewBag.NextProduct);

            NpgsqlConnection connectionSearch = new NpgsqlConnection("Host=test;Database=test;Username=test;Password=test");
            connectionSearch.Open();

            NpgsqlCommand cmdNext = new NpgsqlCommand
                                ("SELECT * FROM q_product " +                                    
                                "WHERE @idnext ilike '%' || q_guid || '%'" +
                                "FETCH FIRST 1 ROWS ONLY"
                                , connectionSearch);                

            cmdNext.Parameters.AddWithValue("@idnext", idNext);
            cmdNext.ExecuteNonQuery();  

问题

现在点击带有此代码的下一个按钮, - 它会将第二个产品完美地加载到页面上再次单击下一步 - 它会将第三个产品完美地加载到页面上

但是从那时起,在加载第 3 个产品并单击下一步之后,它会在单击时在第 2 个和第 3 个产品之间不断迭代。即使表中有超过 3 种产品。

LavsTo

问题已通过使用 NpgsqlCommand Query 而不是 Linq 查询解决。所以这一节

/*select next id*/
var myNext = db.q_product.Where(i => i.q_guid != currentRowId)
      .OrderBy(i => i.q_guid)
      .Skip(1)
      .First().q_guid;

已按以下方式更改和实施

/*select next id*/
NpgsqlCommand myNextSql = new NpgsqlCommand
       ("Select q_guid FROM q_product WHERE q_guid > :idonview LIMIT 1", connectionSearch);

       myNextSql.Parameters.AddWithValue("idonview", currentRowId);
       NpgsqlDataReader reader = myNextSql.ExecuteReader();
       while (reader.Read())
       {
          var myID = reader[0].ToString();
          ViewBag.NextProduct = myID;
       }
       connectionSearch.Close();

       var idNext = Convert.ToString(ViewBag.NextProduct);

单击下一步按钮时,我现在可以浏览表中的所有下一行。我很想从知识渊博的人那里知道,为什么 linq 实现对我来说会这样,因为当您在表格中搜索“获取下一行”时,它似乎是广泛使用的方法。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

C# Linq 获取数据如果存在两条记录

来自分类Dev

LINQ选择每个匹配结果的下一条记录

来自分类Dev

不止一条记录被更新 EF-Linq C#

来自分类Dev

向记录添加结束日期,即下一条记录的开始日期(linq to sql)

来自分类Dev

Postgres和C#:无法加载类型Npgsql.NpgsqlConnectionFactory

来自分类Dev

Linq查询以获取最后一条记录

来自分类Dev

Linq查询以获取最后一条记录

来自分类Dev

Linq映射EntityDb到Dto很慢,一条记录

来自分类Dev

如何仅使用LINQ从实体加载最后一条记录?

来自分类Dev

LINQ to SQL [npgsql]从SelectMany生成错误的查询

来自分类Dev

使用sqlmetal为npgsql生成linq类

来自分类Dev

Generate linq classes using sqlmetal for npgsql

来自分类Dev

IOS / Objective-C:从核心数据加载一条记录,而无需先加载表

来自分类Dev

尝试获取此LINQ查询中每个MemID的第一条记录

来自分类Dev

如何使用Linq在每个组中获得第一条记录

来自分类Dev

使用Linq来查询除一条记录以外的其他记录

来自分类Dev

使用Linq来查询除一条记录以外的其他所有记录

来自分类Dev

如何使用linq获取列表中不同日期的所有第一条记录

来自分类Dev

如何使用C#更新SQL Server中的最后一条记录

来自分类Dev

为什么我需要在C#和PostgreSQL中使用Npgsql引用列和表?

来自分类Dev

使用Npgsql for Postgresql的C#查询显示重复的结果和丢失的表数据

来自分类Dev

为什么我需要在C#和PostgreSQL中使用Npgsql引用列和表?

来自分类Dev

如何在LINQ GroupBy子句中选择最后一条记录

来自分类Dev

使用LINQ,为什么只有一条记录时GroupBy不返回任何行?

来自分类Dev

如何在arraylist vb.net linq中选择一条记录

来自分类Dev

如何在C#中从Npgsql 4.1.5.0执行匿名块PL / pgSQL(PostgreSQL 13)

来自分类Dev

c#npgsql Entity Framework Int Array

来自分类Dev

C# Npgsql,支持过程调用?

来自分类Dev

C#中的LINQ:LINQ中的Foreach

Related 相关文章

  1. 1

    C# Linq 获取数据如果存在两条记录

  2. 2

    LINQ选择每个匹配结果的下一条记录

  3. 3

    不止一条记录被更新 EF-Linq C#

  4. 4

    向记录添加结束日期,即下一条记录的开始日期(linq to sql)

  5. 5

    Postgres和C#:无法加载类型Npgsql.NpgsqlConnectionFactory

  6. 6

    Linq查询以获取最后一条记录

  7. 7

    Linq查询以获取最后一条记录

  8. 8

    Linq映射EntityDb到Dto很慢,一条记录

  9. 9

    如何仅使用LINQ从实体加载最后一条记录?

  10. 10

    LINQ to SQL [npgsql]从SelectMany生成错误的查询

  11. 11

    使用sqlmetal为npgsql生成linq类

  12. 12

    Generate linq classes using sqlmetal for npgsql

  13. 13

    IOS / Objective-C:从核心数据加载一条记录,而无需先加载表

  14. 14

    尝试获取此LINQ查询中每个MemID的第一条记录

  15. 15

    如何使用Linq在每个组中获得第一条记录

  16. 16

    使用Linq来查询除一条记录以外的其他记录

  17. 17

    使用Linq来查询除一条记录以外的其他所有记录

  18. 18

    如何使用linq获取列表中不同日期的所有第一条记录

  19. 19

    如何使用C#更新SQL Server中的最后一条记录

  20. 20

    为什么我需要在C#和PostgreSQL中使用Npgsql引用列和表?

  21. 21

    使用Npgsql for Postgresql的C#查询显示重复的结果和丢失的表数据

  22. 22

    为什么我需要在C#和PostgreSQL中使用Npgsql引用列和表?

  23. 23

    如何在LINQ GroupBy子句中选择最后一条记录

  24. 24

    使用LINQ,为什么只有一条记录时GroupBy不返回任何行?

  25. 25

    如何在arraylist vb.net linq中选择一条记录

  26. 26

    如何在C#中从Npgsql 4.1.5.0执行匿名块PL / pgSQL(PostgreSQL 13)

  27. 27

    c#npgsql Entity Framework Int Array

  28. 28

    C# Npgsql,支持过程调用?

  29. 29

    C#中的LINQ:LINQ中的Foreach

热门标签

归档