C# 更新表中的单元格赢得';不可能生效

C# 更新表中的单元格赢得';不可能生效,c#,asp.net,sql-server,C#,Asp.net,Sql Server,我想更新我专栏中的一个单元格, 在调试模式下,它将贯穿整个代码,但由于某种原因,它永远不会生效。没有任何错误 这是我的代码: else//wrong try! { int errors; string gameHistory = Request.QueryString[0]; errors = int.Parse(gameHistory); string query = "UPDATE HistoryOfGames SET NumberOfErrors=@N

我想更新我专栏中的一个单元格, 在调试模式下,它将贯穿整个代码,但由于某种原因,它永远不会生效。没有任何错误

这是我的代码:

else//wrong try!
{
    int errors;

    string gameHistory = Request.QueryString[0];
    errors = int.Parse(gameHistory);


    string query = "UPDATE HistoryOfGames SET NumberOfErrors=@NumberOfErrors WHERE ID='"+gameHistory+"'";
    con = new SqlConnection("Data Source=MICROSOF-58B8A5\\SQL_SERVER_R2;Initial Catalog=Daniel;Integrated Security=True");
    con.Open();
    string query2 = "SELECT NumberOfErrors FROM HistoryOfGames WHERE ID='"+gameHistory+"'";


    SqlCommand command = new SqlCommand(query2, con);//checks how much errors was in the last time played.

    errors =(int)command.ExecuteScalar();

    command = new SqlCommand(query, con);

    command.Parameters.AddWithValue("@NumberOfErrors", errors);//set a new error.
    command.ExecuteNonQuery();

    con.Close();

}

谢谢

使用SQL Server Profiler检查在您的服务器上执行的查询。

就像有人建议的那样,我从未更改“错误”整数,也没有将其增加1


谢谢所有的帮助

我认为您的代码是编写的,但语句的顺序是错误的

请检查一下这个


    command = new SqlCommand(query, con);     

    command.Parameters.AddWithValue("@NumberOfErrors", errors);//set a new error.     
    command.ExecuteNonQuery();     

    SqlCommand command = new SqlCommand(query2, con);//checks how much errors was in the last time played.     

    errors =(int)command.ExecuteScalar();     
    con.Close();     

首先更新错误,然后选择它。

您的sql查询让met thnik您的where子句出错。您正在尝试将整型字段与字符串值进行比较。通常,仅使用SqlParameter。。。出于很多原因,特别是为了避免参数类型错误处理(但主要原因是安全性),通常ID字段需要为数字,但在您的情况下,我看到它是一个字符串。首先,我要检查字符串变量gameHistory的值。如果出现了错误,请考虑给参数一个变量(代码示例中的变量名),然后在代码中调用如下:您正在使用以前选择的旧值更新记录,因此“由于某种原因永远不会生效”也就不足为奇了。也许你想在更新之前增加1?!但是我正在分析“错误”,不是说我可以接受吗?