高手求救
每次点更新后gridview现实还是更新前的数据 
Protected Sub form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles form1.Load 
        If IsPostBack = True Then 
            bind() //绑定 
        End If 
    End Sub 
  
更新     Protected Sub gv_RowUpdating(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewUpdateEventArgs) Handles gv.RowUpdating 
                Dim s As String = "Data Source=.;Initial Catalog=teacher;Integrated Security=True" 
              
        Dim i As String = CType((gv.Rows(e.RowIndex).Cells(1).Controls(0)), TextBox).Text.ToString.Trim         
        Dim s1 As String = CType((gv.Rows(e.RowIndex).Cells(2).Controls(0)), TextBox).Text.ToString.Trim 
        Dim s2 As String = CType((gv.Rows(e.RowIndex).Cells(3).Controls(0)), TextBox).Text.ToString.Trim 
        Dim s3 As String = "update AA set name='" + s1 + "',password='" + s2 + "' where id='" + i + "'" 
        Dim sql As New SqlConnection(s) 
        Dim sqlcom As New SqlCommand(s3, sql) 
        sql.Open() 
        Session("ss") = s1// 为什么s1显示出来是更新前的数据 不是更新后的数据 
        sqlcom.ExecuteNonQuery() 
        sql.Close() 
        gv.EditIndex = -1 
        bind() 
    End Sub

解决方案 »

  1.   

     Session("ss") = s1
    放在
     sqlcom.ExecuteNonQuery() 
    后面。试一下应该可以了
      

  2.   


    Dim s1 As String = CType((gv.Rows(e.RowIndex).Cells(2).Controls(0)), TextBox).Text.ToString.Trim 
    Dim s3 As String = "update AA set name='" + s1 + "',password='" + s2 + "' where id='" + i + "'" 
    Session("ss") = s1// 为什么s1显示出来是更新前的数据 不是更新后的数据 
    //没有给S1重新赋值啊
      

  3.   

    忘记我session前加了个session。clear
      

  4.   

    If Not IsPostBack Then
    bind()
    End If
    s3 更新语句是否正确,数据是否更新
      

  5.   

    你调试到这里: update AA set name='" + s1 + "',password='" + s2 + "' where id='" + i + "'" 
    把s3拿去数据库运行一下..
    看看能运行你想要的结果不
      

  6.   

    你只更新了数据库..并没有再对GV坐任何操作
    也许你刷新一下gv,或者页面就可以了..
      

  7.   

    Public Sub bind()
            Dim s As String = "Data Source=.;Initial Catalog=teacher;Integrated Security=True"
            Dim a As String = "select * from AA"
            Dim sql As New SqlConnection(s)
            sql.Open()
            Dim scmd As New SqlDataAdapter(a, sql)
            Dim ad As SqlCommandBuilder = New SqlCommandBuilder(scmd)
            Dim ds As Data.DataSet = New Data.DataSet()
            scmd.Fill(ds)        gv.DataSource = ds.Tables(0)
            gv.DataBind()        sql.Close()    End Sub
      

  8.   

     Dim ad As SqlCommandBuilder = New SqlCommandBuilder(scmd)
      

  9.   

    可能是我表述不清楚!
    我应该这样说,如何取点击gridview上的编辑按钮后的编辑状态下的新值!!!!!!!!!!!
      

  10.   

    我如果吧s1赋值成 s1=“怎么办”那数据库都能更新成 “怎么办”
    但是如何取点击gridview上的编辑按钮后的编辑状态下的新值!!!!!!!!!!!
    我一直去出来!!!
    不知道错在哪里?
      

  11.   

    Dim adpt As SqlClient.SqlDataAdapter
    adpt = New SqlClient.SqlDataAdapter(strSQL, cnn)
    adpt.Fill(rst)
    gv.DataSource = ds.Tables(0) 
    gv.DataBind()
      

  12.   

    en 恩啊   就那个s1没有去到更新后的新值
      

  13.   

    -------------
    看你的代码没有给S1重新赋值..
    再说你的需求是更新后查看GV
    所以
    不用取s1的新值..
    更新后直接重新绑定GV..
      

  14.   

    If IsPostBack = True Then 
                bind() //绑定 
            End If 
    应该等于false把
      

  15.   

    如果等于false的话!!页面就没有现实出gridview
      

  16.   

     sqlcom.ExecuteNonQuery() 判断返回值是否大于1
    如果大于1就绑定数据。否则没更新成功
    参考
      

  17.   

    ri 日结贴饿了应该等于false