3

ms-access データベースから毎日 1 つの値を表示する asp:label を設定しようとしています。

1 日に 1 回増分する変数「ID」を設定し、「ID」変数を「sID」である行番号として使用して、.mdb から「名前」値を呼び出そうとしています。データベースと名前は、土曜日と日曜日を除いて毎日変更する必要があります。

ブラウザでサイトを実行すると、構文エラーはありません。しかし、何も表示されません。

クエリまたは表示コードが間違っているかどうかわかりません。

以下に .vb コードを貼り付けました。.aspx で私が持っているのは

    Public Class Mat
    Inherits System.Web.UI.Page

    Public Sub page_load()

        Dim ID As Long
        Dim sConString As String
        Dim sCon As SqlConnection
        Dim scmd As SqlCommand

        sCon = New SqlConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Data\sAuditor.mdb")
        scmd = New SqlCommand()

        ID = 1
        If DatePart("hh", Now()) = 12 And DatePart("mi", Now()) = 0 And DatePart("ss", Now()) = 0 Then

            If DatePart("w", Now()) <> 0 And DatePart("w", Now()) <> 1 Then

                If ID < 3 Then
                    ID = ID + 1
                Else
                    ID = 1
                End If

            End If

        End If

        scmd.CommandText = "SELECT Name FROM EssAudit WHERE sID=ID"
        scmd.Connection = sCon

        Try

            sCon.Open()
            Dim sReader As SqlDataReader
            sReader = scmd.ExecuteReader

            While sReader.Read
                slabel.Text = sReader.Item("Name")
            End While

            sReader.Close()

        Catch ex As Exception
        End Try

        sCon.Close()

    End Sub


End Class
4

1 に答える 1

3

ID の値を渡すのではなく、文字列「ID」を select ステートメントに渡します。これを試して:

    scmd.CommandText = "SELECT [Name] FROM EssAudit WHERE sID=@ID"
    scmd.Parameters.AddWithValue("@ID", ID)

catch セクションで何かを行うと、エラー メッセージがエラーの発見に役立つ可能性があることを付け加えておきます。エラーを単に無視することはめったにありません。

于 2012-11-13T14:50:21.167 に答える