0

ドロップダウンリスト (cbLocation) での選択と、calendarextender (txtFrom および txtTo) からテキストボックスに入力された開始日と終了日に基づいて、ボタンのクリックでグリッドビュー (gvClockings) を設定しようとしているページがあります。

私はSQLステートメントをテストしましたが、Accessで実行すると期待される結果が得られます(このソリューションの別のフォームのグリッドビューで同様のSQLが正常に機能しています)が、3で何を選択しても、このフォームではコントロールを使用すると、グリッドビューにはレコードが表示されません。

cbLocation は、次のように Page_Load に取り込まれます。

If Not Page.IsPostBack Then
        Dim ddl As DropDownList = cbLocation
        Dim ir As ListItem = New ListItem
        Dim ee As ListItem = New ListItem
        ir.Text = "IR Room"
        ir.Value = "IR Room"
        ee.Text = "Employee Exit"
        ee.Value = "Employee Exit"
        ddl.Items.Add(ir)
        ddl.Items.Add(ee)
    End If

次に、データを取得してグリッドビューにデータを入力するための以下のコードがあります。

    Private Sub GetClockings(ByVal LLName As String, ByVal FromDate As String, ByVal ToDate As String)

    Dim conclock As OleDbConnection = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; DATA SOURCE=\\xxx.xx.xxx.xx\AccuFace\pspcms.mdb;Jet OLEDB:Database Password=xxxxx;")
    Dim daClocking As OleDbDataAdapter = New OleDbDataAdapter
    Dim selectSQL As String = "SELECT efrLog.LFirstName, efrLog.LLastName, efrLog.LDepartment, efrLog.LDate, efrLog.LTime, efrLog.LType, efrLog.LLName FROM efrLog WHERE (((efrLog.LDate) Between [@FROMDATE] And [@TODATE]) AND ((efrLog.LLName)=[@LLName])) ORDER BY efrLog.LDepartment, efrLog.LTime"
    Dim selectCMD As OleDbCommand = New OleDbCommand(selectSQL, conclock)
    daClocking.SelectCommand = selectCMD

    selectCMD.Parameters.AddWithValue("@LLName", LLName)
    selectCMD.Parameters.AddWithValue("@FROMDATE", FromDate)
    selectCMD.Parameters.AddWithValue("@TODATE", ToDate)

    Dim dsClockings As DataSet = New DataSet
    daClocking.Fill(dsClockings, "efrLog")

    If dsClockings.Tables("efrLog").Rows.Count > 0 Then
        gvClockings.DataSource = dsClockings.Tables("efrLog")
        gvClockings.DataBind()
    Else
        lblNotFound.Text = "No clockings found for this location"
        lblNotFound.Visible = True
        Exit Sub
    End If
End Sub

上記のコードは、次のように Button_click から呼び出されます。

Dim LLName As String
    Dim FromDate As String = txtFrom.Text
    Dim ToDate As String = txtTo.Text


    If cbLocation.SelectedValue = "IR Room" Then
        LLName = "IR Room"
        GetClockings(LLName, FromDate, ToDate)
    End If

    If cbLocation.SelectedValue = "Employee Exit" Then
        LLName = "Employee Exit"
        GetClockings(LLName, FromDate, ToDate)
    End If

    lblLocation.Text = "Clocking report for " & cbLocation.SelectedValue.ToString() & " generated on " & Date.Now
    lblLocation.Visible = True

できる限りローカルでデバッグしました(IISからリモートサーバーでアクセスデータベースを使用しているため、ローカルで実行しているときにデータセットを入力しようとすると、接続文字列/アクセス許可関連のエラーが発生します。恐ろしいセットアップであることは知っていますが、それは何ですか私はリモートでデバッグする方法がわかりません)、私が見る限り、パラメーターは正しい値を受け取っているようです (以下を参照)。

スクリーンショット

私がデータベースから要求しているデータは確実に存在するので、グリッドビューが読み込まれない理由について完全に行き詰まっています。どんな助けでもありがたく受け取られます。ありがとう

4

1 に答える 1