0

パラメータが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

それが機能しない理由はありますか?明らかな何かが欠けていない限り、これは簡単だと思いましたか?

4

1 に答える 1

0

ごめん!コードビハインドを使用して、自分で問題を解決します。私のrowcommandメソッドでは、updateparametersを使用して値をwhereに渡し、それで問題が解決しました。

于 2012-06-13T15:03:29.227 に答える