【问题标题】:SessionParameter and Update Query with SqlDataSource使用 SqlDataSource 的 SessionParameter 和更新查询
【发布时间】: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


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-05
      • 2017-10-14
      • 2017-11-20
      • 2013-08-21
      相关资源
      最近更新 更多