パラメータがSessionParameterから供給されているSQLDataSource内にUpdateQueryがあります。SessionParameter の値は、グリッドビューのボタン クリックを介してコード ビハインドから設定されています。
目的は、ユーザーがグリッドビューのボタンをクリックすると、グリッドビューを介してデータベースが更新されることです。私が得ている問題は、行が新しい値で更新されていないため、更新クエリが実行されていないことです。私が行ったデバッグは、選択されている行で必要な値を取得していることを示しており、セッションが設定されています。
関連するコード スニペットは次のとおりです。
<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
それが機能しない理由はありますか?明らかな何かが欠けていない限り、これは簡単だと思いましたか?