0

不知道如何表达这个问题,但无论如何我都会尝试。

我目前正在做一个项目,我想通过该项目提取用户的高分。我的数据库中的高分 id 看起来像这样:

The user database:
|ID | Username |
| 1 | Test1    |
| 2 | Test2    |
| 3 | Test3    |

The highscore database:
|ID |Highscore |HighscoreID|
| 1 | 200      | 1         |
| 1 | 230      | 2         |
| 1 | 240      | 3         |

首先,我想检查用户的ID是否与highscore数据库中的ID(HighscoreID)匹配,这样在显示所有highscore时,在highscore前面会显示Test1(谁的ID为1)ID对应的ID HighscoreID 中的 id。有一些像;

If(Username.ID == 1 && Highscore.HighscoreID == 1)
{
 //Display The username + the score associated with that username
}

我不确定如何解释这一点,但是当我们想通过网站上的 ID 显示某些内容时,我们会在地址链接中拥有 ID,然后从地址链接中提取带有 ID 的所有内容。

我希望这已经解释得足够好,很快就会在游戏中达到最后期限,所以我希望我不必重写这个问题。

在此先感谢,你们摇滚。

编辑

所以基本上是这样的:

 MathAndYouDBEntities db = new MathAndYouDBEntities();
            User users = new User();
            HighScore highscor = new HighScore();
            int idCounter = 0;
            for (int i = 1; i < 5; i++)
            {
                i = idCounter;
                if (users.ID == i && highscor.HighscoreID == i)
                { 

                }
            }

如果我想遍历所有这些以便稍后显示它们?

D

oing this basicly crashes the program:
   MathAndYouDBEntities db = new MathAndYouDBEntities();
            User users = new User();
            HighScore highscor = new HighScore();
            int idCounter = 0;
            for (int i = 1; i < 5; i++)
            {
                i = idCounter;
                if (users.ID == idCounter && highscor.HighscoreID == idCounter)
                {
                    allUsers += users.Bruger.ToString();
                    highscores += highscor.UserHighscore.ToString() + '\n';
                }
            }

            message = allUsers + " " + highscores;

有任何想法吗?

4

3 回答 3

1
     If(Username.ID == 1 && Highscore.HighscoreID == 1)
     {
       System.out.println("Username is: " Username.name + "And the high score is :" + Highscore.Highscore);
       //Display The username + the score associated with that username
     }

因为如果您使用正确的高分检查正确的用户名 ID,您可以使用相同的高分来获得高分。

我希望我是有道理的!

编辑:对不起,我没有读到你想要它在 for 循环中

  for(Highscore h : HighscoreList)   //ifyourusinganarraylistnamedHighscoreList
   If(Username.ID == 1 && Highscore.HighscoreID == 1)
   {
            System.out.println("Username is: " Username.name + "And the high score is    :" + Highscore.Highscore);
   }
于 2012-06-06T09:41:06.790 回答
1

如果您使用某种 ORM,您可以这样做。

var highScore = Highscores.Where(c => c.HighscoreID == 1)
                          .Max(c => c.Highscore);

或者在您的查询字符串中执行此操作。

于 2012-06-06T09:43:57.560 回答
0

经过大量测试找到了答案。

MathAndYouDBEntities db = new MathAndYouDBEntities();

            var queryResults =
                (
                from u in db.Users
                join h in db.HighScores
                on u.ID equals h.HighscoreID
                select new { u.Bruger, h.UserHighscore }
                );

            foreach (var h in queryResults)
            {
                allUsers += h.Bruger.ToString();
                highscores += h.UserHighscore.ToString();
            }

感谢大家的帮助。

于 2012-06-06T10:44:20.800 回答