2012-01-10 9 views
0

のデバッグモードで1つのセルを更新しようとしていますが、何らかの理由でそのコードが実行されることはありません。エラーは発生しません。テーブルのセルが更新されない

これは私のコードです:

else//wrong try! 
{ 
    int errors; 

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


    string query = "UPDATE HistoryOfGames SET [email protected] 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(); 

} 

感謝!

+2

あなたのsqlクエリはwhere節が間違っています。 intフィールドと文字列値を比較しようとしています。一般的には、SqlParameterのみを使用してください...多くの理由で、特にパラメータのタイプが間違って処理されるのを避けるためです。(主な理由はセキュリティです) –

+2

通常、IDフィールドは数値でなければなりませんが、 。最初に、私はあなたの文字列変数gameHistoryの値が何であるかを確認するでしょう。何か問題がある場合は、パラメータに変数(コード例ではVariableName)を指定して、コードで次のように呼び出します。Request.QueryString ["VariableName"]; –

+0

以前に選択した古い値でレコードを更新しているため、「何らかの理由で決して影響を受けない」ということは不思議ではありません。あなたはそれを更新する前に1を増やしたいでしょうか? –

答えて

0

誰かが示唆されているように、私は決して "エラー"整数を変更していないし、それを1つだけincresedしませんでした。

すべてのヘルパーに感謝します!

1

SQL Server Profilerを使用して、サーバーで実行されているクエリを確認します。

1

あなたのコードは書き込みだと思いますが、文の順序は間違っています。

それをselet


    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();  

最初の更新エラー、これをチェックしてください。

関連する問題