2012-04-09 8 views
0

私は単純なグリッドビューを持っています。 tableDataをgridviewにバインドするためのSqlDataSource。GridView:行の更新時に毎回セルの値を1ずつ増やす方法

私はセルの値(int型)を1つ増やそうとしています。ここ 私のコードですが、グラムを働いていない:動作しない理由を私は知らない

protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e) 
     { 
      GridViewRow row = GridView1.Rows[e.RowIndex]; 
      string str = ((TextBox)(row.Cells[8].Controls[0])).Text; 
      int conv = Convert.ToInt32(str); 
      int set = conv + 1; 
      string conn = "conn string"; 
      string sqlQuery = "UPDATE TableName SET Total [email protected]"; 
      using (SqlConnection dataConnection = new SqlConnection(conn)) 
      { 
       using (SqlCommand dataCommand = new SqlCommand(sqlQuery, dataConnection)) 
       { 
        dataCommand.Parameters.AddWithValue("Total", set); 
        dataConnection.Open(); 
        dataCommand.ExecuteNonQuery(); 
        dataConnection.Close(); 

       } 
      } 

     } 

、私は現在の編集行の一つのセルによって増加する必要があります。あなたがここに提供したものに基づい

おかげ

+0

を取得するためにe.NewValuesを使用する必要があります。あなたのコードで宣言されていないか初期化されていないので、 'stra'とは何ですか? –

+0

andc私のコードは何かがうまくいきません。しかし、どこのエラーも出ないので、何も更新されません。 –

答えて

0

、あなたはactaullyあなたはすべての行をupding代わりにしている

int stra = stra + 1; 

dataCommand.Parameters.AddWithValue("Total", stra); 
+0

申し訳ありませんが、コードをもう一度見てください!...コードが動作していません間違っている..しかし、私は何もエラーが発生しないため、何も更新されていないので、どこにはわからない –

+0

tryステートメントでラップし、何も間違っていることを100%検証するために例外をキャッチしてくださいhttp:// msdn .microsoft.com/ja-us/library/0yd65esw.aspx –

+0

エラーはありませんが、コードが正しくないと確信しています。 –

0
  • 代わりにこれを試してみてください何も

    int set = stra + 1; 
    
    dataCommand.Parameters.AddWithValue("Total", set); 
    

    を追加されることはありませんあなたが鍵を提供していないので編集したものだけ

  • あなたは、あなたが宣言されていないと、初期化 `conv`が、どこにも使用されてきた改定値

    string sqlQuery = "UPDATE TableName SET [email protected] WHERE [email protected]"; 
    using (SqlConnection dataConnection = new SqlConnection(conn)) 
    { 
        using (SqlCommand dataCommand = new SqlCommand(sqlQuery, dataConnection)) 
        { 
         var total = (int)e.NewValues["Total"] + 1; 
         dataCommand.Parameters.AddWithValue("Total", total); 
         dataCommand.Parameters.AddWithValue("ID", (int)e.Keys["ID"].Value); 
         dataConnection.Open(); 
         dataCommand.ExecuteNonQuery(); 
        } 
    } 
    
+0

指定されたキャストは無効です。私はまた、列の合計が読み込み専用であり、0で始まることを忘れていました。(今、私は読み込み専用のコードを書きませんでした。セルの値は1)テストのためだけです。 –

+0

そしてTotalというセルの値は編集されません。なぜなら私はそれを読み込み専用に設定し、増分コードを作る必要があるからです。 –

+0

'Total'はどんな型ですか? 'e.NewValues'に' Total'が含まれているかどうかをデバッグしましたか? –

関連する問題