我正在尝试使用新的 TeamID 更新玩家记录,但它没有更新,请提供任何提示
问问题
997 次
2 回答
3
ExecuteNonQuery
返回受影响的行数。您的数据库中没有值为 0 的 Person_ID。
看起来您可能想在 while 循环中移动大部分代码,就像大多数这样
SqlCommand Updatecmd = new SqlCommand("UPDATE Persons SET TeamID=@Team_ID WHERE PersonID=@Person_ID", UpdateCon);
Updatecmd.Parameters.Add("@Team_ID", SqlDbType.VarChar);
Updatecmd.Parameters.Add("@Person_ID", SqlDbType.VarChar);
Updatecmd.Parameters["@Team_ID"].Value = PlayerTeam_ID;
Updatecmd.Parameters["@Person_ID"].Value = Player_ID;
应该放在这之后
PlayersCount++;
Division_ID=reader.GetInt32(1);
Player_ID = reader.GetInt32(0);
PlayerTeam_ID = PlayersCount % 4 + 4 * Division_ID;
于 2014-02-11T01:19:53.800 回答
2
这两行:
Updatecmd.Parameters["@Team_ID"].Value = PlayerTeam_ID;
Updatecmd.Parameters["@Person_ID"].Value = Player_ID;
最初将值设置为变量PlayerTeam_ID
和Player_ID
。在您的read
循环中,您正在更新变量PlayerTeam_ID
和Player_ID
,但您没有更新参数中的值。您应该更新参数的值,如下所示:
while (reader.Read())
{
PlayersCount++;
Division_ID=reader.GetInt32(1);
Player_ID = reader.GetInt32(0);
PlayerTeam_ID = PlayersCount % 4 + 4 * Division_ID;
Updatecmd.Parameters["@Team_ID"].Value = PlayerTeam_ID;
Updatecmd.Parameters["@Person_ID"].Value = Player_ID;
UpdateCon.Open();
int intQuery = Updatecmd.ExecuteNonQuery();
ltlOutput.Text = intQuery.ToString();
UpdateCon.Close();
}
于 2014-02-11T01:23:22.427 回答