当我运行这个动作时,我收到了这条消息:“已经有一个打开的DataReader与这个Command相关联,必须先关闭它。”一个开放的数据读取器
我的代码是:公共无效UpdatePoints(字符串rightScore,串rightWinner) {
cmd.CommandText = "select * from Users_Details";
cmd.Connection = connection;
connection.Open();
rdr = cmd.ExecuteReader();
while (rdr.Read())
{
int points=0;
string sql;
string hisScore = (string)rdr["lastbetscore"];
string hisWinner = (string)rdr["lastbetwinner"];
if (rightScore == hisScore)
points = points + 30;
if (rightWinner == hisWinner)
{
points = points + 20;
}
sql = "update Users_Details set lastgame_points='" + points + "', gamesplayed='" + ((int)rdr["gamesplayed"] + 1) + "',currentpoints='" + ((int)rdr["currentpoints"] + points) + "',pointsPG='" + (((int)rdr["currentpoints"] + points)/((int)rdr["gamesplayed"] + 1)) + "' where username='" + (string)rdr["username"] + "'";
cmd.CommandText = sql;
cmd.ExecuteScalar();
}
rdr.Close();
connection.Close();
}
我添加了它,但仍然收到错误消息 –
现在,它会打印出“已经有一个与此连接关联的打开的DataReader,必须先关闭”。 ?而不是“命令”? –
我的第一个答案是错误的,因为不仅可以重用命令,还可以重用连接。请查看更正的答案。 –