2012-04-09 88 views
0

我有一个简单的gridview。 将tableData绑定到gridview的SqlDataSource。GridView:如何在行更新中每次增加一个单元格的值?

行更新我试图增加一个单元格(int类型)的值。 这里是我的代码,但不干活G:

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

您已经声明和初始化'conv'却无处使用。什么是'stra',因为它没有在你的代码中声明或初始化? – 2012-04-09 19:06:20

+0

而且我的代码是不工作的东西是错误的..但我不知道在哪里,因为我没有得到任何错误,但没有更新 – 2012-04-09 19:13:01

回答

0

基于你在这里提供什么,你永远不会actaully添加任何

int set = stra + 1; 

dataCommand.Parameters.AddWithValue("Total", set); 

试试这个

int stra = stra + 1; 

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

对不起再看看我的代码!...代码不工作的东西是错误..但我不知道在哪里,因为我没有得到任何错误,但没有更新 – 2012-04-09 19:12:31

+0

将它包装在一个try语句中,并让它捕获任何异常,只是为了验证100%没有任何错误http:// msdn .microsoft.com/en-us/library/0yd65esw.aspx – 2012-04-09 19:15:29

+0

不存在错误,但我确定我的代码不正确。 – 2012-04-09 19:20:08

0
  • 你upding所有行,而不是由于您没有提供密钥,因此只有编辑过的密码
  • 您应该使用e.NewValues检索修正值

    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

指定的转换无效。 (var total =(int)e.NewValues [“Total”] + 1;)我也忘记提及列总数是只读的,它以0开头。(现在我没有写任何代码只读单元格值为1)仅用于测试。 – 2012-04-09 19:24:38

+0

而来自名为Total的单元格的值永远不会被编辑,因为我将它设置为只读,并且需要增加代码 – 2012-04-09 19:25:59

+0

那么Total是什么类型?你有没有调试过e.NewValues'是否包含'Total'? – 2012-04-09 19:32:14

相关问题