【发布时间】:2012-06-13 14:23:53
【问题描述】:
我的 SQLDataSource 中有一个 UpdateQuery,其中的参数是从 SessionParameter 提供的。 SessionParameter 的值是通过单击网格视图的按钮从我的代码隐藏中设置的。
目标是当用户单击gridview 上的按钮时,它会通过gridview 更新数据库。我遇到的问题是更新查询没有被执行,因为我没有看到用新值更新的行。我所做的调试表明,我在被选中的行上得到了我想要的值,并且正在设置会话。
这里是相关代码sn-p:
<asp:SqlDataSource ID="JobNameDatasource" runat="server"
ConnectionString="<%$ ConnectionStrings:ConnectionString %>"
SelectCommand="SELECT [JobName], [ChangedDate], [AdHocFlg] FROM [t_Config_iFace_Execution]"
UpdateCommand="UPDATE [t_Config_iFace_Execution] SET [RunJob] = 1 WHERE [JobName] = @JobName">
<UpdateParameters>
<asp:SessionParameter Name="JobName" SessionField="JobName"/>
</UpdateParameters>
</asp:SqlDataSource>
Protected Sub RunJob_RowCommand(ByVal sender As Object, ByVal e As GridViewCommandEventArgs)
If e.CommandName = "UpdateJob" Then
Dim btnRunJob As Button = TryCast(e.CommandSource, Button)
Dim gvr As GridViewRow = TryCast(btnRunJob.NamingContainer, GridViewRow)
Dim rowIndex As Integer = gvr.RowIndex
Dim Name As String = DirectCast(GridView1.DataKeys(rowIndex).Values("JobName"), String)
Session.Add("JobName", Name)
Label1.Text = Session("JobName")
End If
End Sub
任何想法为什么它不起作用?我认为这很简单,除非我遗漏了一些明显的东西?
【问题讨论】:
标签: asp.net