我正在用C#winforms创建一个程序,它跟踪游戏统计数据并将它们传递给数据库。我写的代码没有抛出任何错误,并且已经两次更新了第一个条目。在其他每个场合,它都运行代码并且什么也没做。据我所知它看起来正确,我在其他地方找不到任何帮助。
数据已存储在每个播放器的数组中。在更新之前,循环通过循环选择阵列中的每个玩家并将细节传递给DB中的相应条目。然后,在循环并更新下一个播放器之前,数据库需要更新。
这是我的代码:
public void updateDB()
{
//WHY ARE YOU NOT UPDATING THE DB?>?>?>?>?>?>?>?>
using (var context = new BeerPongEntities6())
for (int i = 0; i < 3; i++)
{
int ID = Convert.ToInt16(Players[i].playerID);
var query = from p in context.PlayerDetails
where p.PlayerID == ID
select p;
var playerUpdate = query.FirstOrDefault();
playerUpdate.TotalShots += Players[i].totalShots;
playerUpdate.TotalCups += Players[i].totalCups;
playerUpdate.TotalMisses += Players[i].totalMisses;
playerUpdate.TotalBounceShots += Players[i].totalBounce;
playerUpdate.TotalBounceCups += Players[i].totalBounceCups;
playerUpdate.TotalOverthrows += Players[i].overthrows;
playerUpdate.GamesPlayed += 1;
//if statements to determine whether you won or lost
if ((winner == 1)) //Players 1 and 3 (Team1)
{
if (i == 0 || i == 2)
{
playerUpdate.GamesWon += 1;
}
else
{
playerUpdate.GamesLost += 1;
}
}
if (winner == 2) //players 2 and 4 (Team2)
{
if (i == 1 || i == 3)
{
playerUpdate.GamesWon += 1;
}
else
{
playerUpdate.GamesLost += 1;
}
}
//Save the stats to the DB
context.SaveChanges();
}
myPlayer.allPlayers();
MessageBox.Show("Stats Database updated");
}
答案 0 :(得分:0)
由于某种原因,数据库不喜欢更新NULL属性。我将DB条目更改为默认值为0.一旦我完成了这些属性更新。