Asp.net SessionParameter和使用SqlDataSource更新查询

Asp.net SessionParameter和使用SqlDataSource更新查询,asp.net,Asp.net,我在SQLDataSource中有一个UpdateQuery,其中参数由SessionParameter提供。SessionParameter的值是通过单击gridview上的按钮从my codebehind设置的 目标是当用户单击gridview上的按钮时,它会通过gridview更新数据库。我遇到的问题是更新查询没有被执行,因为我没有看到用新值更新的行。我所做的调试表明,我在所选行上获得了所需的值,并且正在设置会话 以下是相关的代码片段: <asp:SqlDataSource ID="

我在SQLDataSource中有一个UpdateQuery,其中参数由SessionParameter提供。SessionParameter的值是通过单击gridview上的按钮从my codebehind设置的

目标是当用户单击gridview上的按钮时,它会通过gridview更新数据库。我遇到的问题是更新查询没有被执行,因为我没有看到用新值更新的行。我所做的调试表明,我在所选行上获得了所需的值,并且正在设置会话

以下是相关的代码片段:

<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

受保护的子RunJob_row命令(ByVal sender作为对象,ByVal e作为GridViewCommandEventArgs)
如果e.CommandName=“UpdateJob”,则
Dim btnRunJob As Button=TryCast(如命令源,按钮)
作为GridViewRow=TryCast的尺寸gvr(btnRunJob.NamingContainer,GridViewRow)
Dim rowIndex作为整数=gvr.rowIndex
Dim名称为String=DirectCast(GridView1.DataKeys(rowIndex).Values(“JobName”),字符串)
Session.Add(“JobName”,Name)
Label1.Text=会话(“作业名”)
如果结束
端接头

知道它为什么不起作用吗?我以为这很简单,除非我遗漏了一些明显的东西?

对不起!通过使用代码隐藏自己解决问题。在我的rowcommand方法中,我使用updateparameters将值传递到where,这就解决了问题