对于板球项目:想要计算投球手的拼写和结束

时间:2017-06-19 09:47:14

标签: sql-server linq sql-server-2008 asp.net-mvc-3

我目前正致力于板球项目。因此,我必须显示该鼓风机的咒语以及当前咒语中正在运行的咒语。 你可以在这里看到截图

Bowlers Over

对于Ex。 截图中有4个投球手b1b2b3b4

  • B1保龄球比spell = 1spellover = 1
  • 更早
  • B2保龄球比spell = 1spellover = 1
  • 更高时
  • B1保龄球比赛结束时spell = 1spellover = 2
  • B2保龄球比spell = 1spellover = 2
  • 更早

现在投球手正在改变

  • B3保龄球比第五名spell = 1spellover = 1
  • 时更高
  • B4保龄球比第spell = 1spellover = 1
  • 更高时
  • B3保龄球比第spell = 1spellover = 2
  • 时排名第7
  • B4保龄球比spell = 1spellover = 2
  • 保持第8时

现在再次更换投球手,B1和B2已准备好进行保龄球

  • B1保龄球比当时spell = 2spellover = 1
  • 更高时
  • B2保龄球排在第10位时spell = 2spellover = 1

我想要完全高于数据库spellspellover的记录。当投球手保龄球连续断线时,意味着投球手的一个咒语已经结束。

您可以在此处查看我的数据库记录

Database_Record

如果在linq视图中有任何想法,那么您也可以建议我如何在linq视图中执行此操作。

1 个答案:

答案 0 :(得分:0)

给你一个想法: 1.定义一个课程,你可以将它命名为保龄球或任何合适的

class bowlers
        {
            public string bowlerid { get; set; }
            public int spell { get; set; }
            public int spellOver { get; set; }`enter code here`
        }

2.使用来自数据库的值填充列表。我已手动填充:

List<bowlers> temp = new List<bowlers>();
            temp.Add(new bowlers{bowlerid="1"});
            temp.Add(new bowlers{bowlerid="2"});
            temp.Add(new bowlers{bowlerid="3"}); 
            temp.Add(new bowlers{bowlerid="4"});

3.用保龄球id输入lsit  var lst = temp.OrderByDescending(x =&gt; x.bowlerid);

4.最后你需要定义设置法术和法术的逻辑。你可以设置法术

你可以这样做。

string current=temp[0].bowlerid;
var result1=temp.SkipWhile(x=>x.bowlerid!=current).Select<bowlers,bowlers>(x=>{spell=x.spell;//update current 
 return new bowlers{bowlerid=x.bowlerid,spell=spell+1}});

您需要根据场景更新当前变量。