この関数を実行しようとすると、エラーが発生します。 "System.InvalidCastException:指定されたキャストは無効です。C#要求ハンドラエラーSystem.InvalidCastException:指定されたキャストが無効です
System.InvalidCastException: Specified cast is not valid.
at server.mihail.credits.HandleRequest() in F:\Users\Mihail\Documents\new-sentients-2016\server\mihail\credits.cs:line 34
at server.RequestHandler.HandleRequest(HttpListenerContext context) in F:\Users\Mihail\Documents\new-sentients-2016\server\RequestHandlers.cs:line 37
at server.Program.ProcessRequest(HttpListenerContext context) in F:\Users\Mihail\Documents\new-sentients-2016\server\Program.cs:line 156
これは、関数である: 私はそれでナンバーワンと私のメールアドレスとパラメータの補助としてのguidパラメータでそれを実行してみてください。
私はそれを修正するために一日中努力してきました。あなたが提供した限られた情報に基づいて
class credits : RequestHandler
{
protected override void HandleRequest()
{
string status = "403";
using (Database db = new Database())
{
NameValueCollection query = HttpUtility.ParseQueryString(Context.Request.Url.Query);
MySqlCommand cmd = db.CreateQuery();
cmd.CommandText = "SELECT id FROM accounts WHERE [email protected]";
cmd.Parameters.AddWithValue("@uuid", query["guid"]);
object id = cmd.ExecuteScalar();
if (id != null)
{
int amount = int.Parse(query["aid"]);
cmd = db.CreateQuery();
cmd.CommandText = "UPDATE stats SET credits = credits + @amount WHERE [email protected]";
cmd.Parameters.AddWithValue("@accId", (int) id);
cmd.Parameters.AddWithValue("@amount", amount);
int result = cmd.ExecuteNonQuery();
if (result > 0)
status = "400";
else
status = "500";
}
else
status = "404";
}
byte[] res = Encoding.UTF8.GetBytes(
status);
Context.Response.OutputStream.Write(res, 0, res.Length);
}
}
どのラインが例外を投げていますか?私はそれらを数えるつもりはありません:) – SledgeHammer
それは確かにボックス化されたint場合@ LaneLすることができます。 OPがどんな行に例外をスローするかを教えてもらうことができない場合、問題が何であるかを推測することはありません。 – Jakotheshadows