Vb.net GridView行更新可以';t获取新值,它只获取旧值
我有以下代码:Vb.net GridView行更新可以';t获取新值,它只获取旧值,vb.net,asp.net-mvc-4,Vb.net,Asp.net Mvc 4,我有以下代码: Protected Sub GridView1_RowUpdating(ByVal sender As Object, ByVal e As GridViewUpdateEventArgs) Handles GridView1.RowUpdating Dim strPersonID As String = DirectCast(GridView1.Rows(e.RowIndex).FindControl("TextBox1"), TextBox).Text Di
Protected Sub GridView1_RowUpdating(ByVal sender As Object, ByVal e As GridViewUpdateEventArgs) Handles GridView1.RowUpdating
Dim strPersonID As String = DirectCast(GridView1.Rows(e.RowIndex).FindControl("TextBox1"), TextBox).Text
Dim s As String=e.NewValues[1].ToString()
Dim strLastName As String = DirectCast(GridView1.Rows(e.RowIndex).FindControl("TextBox2"), TextBox).Text
Dim command As SqlCommand = New SqlCommand("updatetest", cn)
command.CommandType = CommandType.StoredProcedure
command.Parameters.AddWithValue("@pid", strPersonID)
command.Parameters.AddWithValue("@pfirstname", strLastName)
If cn.State = ConnectionState.Closed Then
cn.Open()
End If
command.ExecuteNonQuery()
If cn.State = ConnectionState.Open Then
cn.Close()
End If
End Sub
问题是,事件行更新正在返回旧值,因此如何获取更新的新值?请注意,编程没有运行事件行更新
有什么帮助吗
谢谢:)当触发
行更新
事件时,更改尚未提交回数据源。这是一个活动,旨在为您提供一个验证输入的机会,并在需要时阻止更改的进行
其中有两个字典,OldValues
和NewValues
。您可以通过如下方式循环它们,找出发生了什么变化:
For Each key As String In e.OldValues.Keys
If e.OldValues(key) <> e.NewValues(key) Then
MessageBox.Show(key & " has changed: Old Value = " & e.OldValues(key) & "; New Value = " & e.NewValues(key))
End if
Next
e.OldValues.Keys中每个键作为字符串的
如果e.OldValues(键)e.NewValues(键),则
MessageBox.Show(键和“已更改:旧值=“&e.OldValues(键)”和“新值=“&e.NewValues(键))
如果结束
下一个
这是大脑编译器,但我认为语法是正确的