"このコマンドに関連付けられている開いているDataReaderは既に閉じている必要があります。"という操作を実行すると、このメッセージが表示されます。開かれたデータリーダー
私のコードがあるします。public void 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();
}
私はそれを追加しましたが、エラーメッセージ –
が表示されるようになりました。「このConnectionに関連付けられている開いているDataReaderが既にあります。 ? 「コマンド」の代わりに? –
私の最初の答えは間違っていました。コマンドだけでなく接続も再利用できないからです。修正された答えを見てください。 –