【问题标题】:How can I convert this SQL code into LINQ format?如何将此 SQL 代码转换为 LINQ 格式?
【发布时间】:2020-08-23 13:53:28
【问题描述】:

这是我的 SQL 表

CREATE TABLE PlayerXP 
(
    id_partida INT NOT NULL IDENTITY(1, 1) PRIMARY KEY,
    ganhoxp    NVARCHAR(5) NOT NULL,
    duracao    VARCHAR(5) NOT NULL,
)

此代码为 linq 格式

SELECT
    SUM (60 * CONVERT(int, LEFT( duracao, 2)) +
         CONVERT(int, RIGHT(duracao, 2))) AS TotalSegundos
FROM PlayerXP;

duracao 列的格式为分/秒 (mm:ss)

【问题讨论】:

  • 也许我的SQL to LINQ Recipe 可以帮助你。
  • 我是编程初学者,还在学习Linq,所以很难有自己写代码的基础,单独学习,SQL已经有了一定的领域。但我肯定会更多地查看文档
  • 经过更多研究,我从我的 DataGridView 中发现了另一种方法 (stackoverflow.com/questions/25013073/…),它从数据库中获取这些数据并将其显示在表单上

标签: c# sql linq sum


【解决方案1】:

假设表是一个业务实体:

public class PlayerXP 
{
 public int id_partida;
 public string ganhoxp;
 public string duracao;
}

有一个对象

PlayerXP playerxp = new PlayerXP()

如果该业务实体类的对象中duracao 的值是

playerxp.duracao = "12:60"

那么, 试试这个:

int TotalSegundos = (playerxp.duracao.Split(":")
                              .Select(x => Int32.Parse(x, CultureInfo.InvariantCulture))
                              .First() * 60) + playerxp.duracao.Split(":")
                                                      .Select(x => Int32.Parse(x, CultureInfo.InvariantCulture))
                                                      .Last();

我得到的TotalSegundos 值是780

【讨论】:

  • 非常感谢您的帮助,我测试了它并成功了。
  • 好的伙计,没问题
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-10-09
  • 1970-01-01
  • 1970-01-01
  • 2014-03-18
  • 2015-10-02
  • 1970-01-01
相关资源
最近更新 更多