Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/335.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# asp.net mvc razor应用程序-从范围内的数据库中选择数据_C#_Asp.net_Sql_Asp.net Mvc_Razor - Fatal编程技术网

C# asp.net mvc razor应用程序-从范围内的数据库中选择数据

C# asp.net mvc razor应用程序-从范围内的数据库中选择数据,c#,asp.net,sql,asp.net-mvc,razor,C#,Asp.net,Sql,Asp.net Mvc,Razor,我有一个快速的SQL问题。 在我的MVC Razor应用程序中,我有两个文本输入请求开始值和结束值 这些值将是数字,它们对应于版本 Ex:4.0.100-4.0.157 所以我需要显示100-157之间的所有版本 我可以直接访问数据库,它是版本列 我的问题是:如何编写或获取查询以显示此信息 型号: using System; using System.Collections.Generic; namespace BenchmarkApp.Models { public partial clas

我有一个快速的SQL问题。 在我的MVC Razor应用程序中,我有两个文本输入请求开始值和结束值

这些值将是数字,它们对应于版本 Ex:4.0.100-4.0.157

所以我需要显示100-157之间的所有版本 我可以直接访问数据库,它是版本列

我的问题是:如何编写或获取查询以显示此信息

型号:

using System;
using System.Collections.Generic;

namespace BenchmarkApp.Models
{
public partial class Build
{
    public Build()
    {
        this.Executions = new List<Execution>();
    }

    public string Version { get; set; }
    public bool Obfuscated { get; set; }
    public bool Release { get; set; }
    public int ID { get; set; }
    public bool IsX64 { get; set; }
    public bool Visible { get; set; }
    public Nullable<System.DateTime> CreationDate { get; set; }
    public virtual ICollection<Execution> Executions { get; set; }
}

提前谢谢你

我建议您使用将版本字符串转换为
version
对象。首先,您可以编写一个扩展方法,将字符串/int值解析为可比较的
Version
对象:

public static Version ParseToVersion(this string input)
{
    Version result = null;
    Version.TryParse(input, out result);
    return result;
}
然后,您可以轻松地使用linq,并使用上面的扩展方法选择所需的范围:

public IEnumerable<Build> GetBuildsInRange(string beginVersion, string lastVersion)
{
    var startVersion = start.ParseToVersion();
    var endVersion = end.ParseToVersion();
    if (startVersion == null || endVersion == null) return IEnumerable.Empty<Build>();
    return YourDbContext.Builds.Where(b =>
        b.Version.ParseToVersion() >= startVersion
     && b.Version.ParseToVersion() <= endVersion);
}
public IEnumerable GetBuildsInRange(字符串beginVersion,字符串lastVersion)
{
var startVersion=start.ParseToVersion();
var endVersion=end.ParseToVersion();
if(startVersion==null | | endVersion==null)返回IEnumerable.Empty();
返回YourDbContext.Builds.Where(b=>
b、 Version.ParseToVersion()>=startVersion

&&b.Version.ParseToVersion()你可以使用linq to sql,一个存储过程,或者只在页面上写出sql。如果你不太懂sql,linq可能是最简单的。你在使用哪个数据库?我正在使用构建数据库。谢谢你的快速回复!我很抱歉回复太晚。我对ASP.net开发还比较陌生,你能详细解释一下吗我必须做什么?也许同时解释一下!非常感谢!@StephenSugumar现在看看。
public static Version ParseToVersion(this string input)
{
    Version result = null;
    Version.TryParse(input, out result);
    return result;
}
public IEnumerable<Build> GetBuildsInRange(string beginVersion, string lastVersion)
{
    var startVersion = start.ParseToVersion();
    var endVersion = end.ParseToVersion();
    if (startVersion == null || endVersion == null) return IEnumerable.Empty<Build>();
    return YourDbContext.Builds.Where(b =>
        b.Version.ParseToVersion() >= startVersion
     && b.Version.ParseToVersion() <= endVersion);
}