如何使用递增变量在标签中显示 .mdb 信息
Posted
技术标签:
【中文标题】如何使用递增变量在标签中显示 .mdb 信息【英文标题】:How do I display .mdb info in a label using an incrementing variable 【发布时间】:2012-11-13 14:29:21 【问题描述】:我正在尝试设置一个 asp:label,它每天显示来自 ms-access 数据库的一个值。
我设置了一个每天递增一次的变量“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
【问题讨论】:
与您的问题无关,DatePart 函数是 VB6 天的保留。使用新方法将更易于阅读您的代码:Now().Month、Now().Hour 等 【参考方案1】:您没有传递 ID 的值,而是将字符串“ID”传递给 select 语句。试试这个:
scmd.CommandText = "SELECT [Name] FROM EssAudit WHERE sID=@ID"
scmd.Parameters.AddWithValue("@ID", ID)
我会补充一点,如果您在 catch 部分执行某些操作,错误消息可能会帮助您找到错误。简单地忽略错误很少是可行的方法。
【讨论】:
以上是关于如何使用递增变量在标签中显示 .mdb 信息的主要内容,如果未能解决你的问题,请参考以下文章