sub showdata()
   if page.ispostback then
dim i as integer = 0
dim j as integer = 0
dim rd as oledbdatareader
dim lrd
dim shijian1,shijian,connstr,sql as string
dim conn as oledbconnection=nothing
connstr= "provider=microsoft.jet.oledb.4.0;data source="&server.mappath("class.mdb")
conn= new oledbconnection(connstr)
conn.open()
shijian=nian.text
shijian+="-"
shijian+=yue.text
shijian+="-"
shijian+=ri.text
shijian1=shijian
sql= "select 日期,教室,教师,学科,节次 from class1 where 日期 = '" & shijian1 & "'"
dim cmd as oledbcommand= new oledbcommand(sql,conn)
lrd=cmd.executereader()
rd=lrd
riqi.text=date.today()
table1.rows(0).cells(0).innerhtml=shijian
dim dm as datetime
riqi.text+=dm.dayofweek.tostring
while rd.read()
select case rd.item("教室")
case "多媒体教室"
i="0"
case "物理实验室一"
i="1"
case "物理实验室二"
i="2"
case "化学实验室一"
i="3"
case "化学实验二"
i="4"
case "生物实验室"
i="5"
case "语音室"
i="6"
case "阅览室"
i="7"
case "报告厅"
i="8"
end select
j=rd.item("节次")
table2.rows(i).cells(j).innerhtml=rd.item("教师")
table2.rows(i).cells(j).innerhtml+="<br>"
table2.rows(i).cells(j).innerhtml+=rd.item("学科")
end while
conn.close()
end if 
   end sub

解决方案 »

  1.   

    异常详细信息: System.ArgumentOutOfRangeException: 指定的参数已超出有效值的范围。参数名: index
    这里的index就是你的.item("...")里面的内容中的 第几个/总数量
    错误说明你使用的项数目 大于了  里面所包含的 全部项数目
    索引 和数组 一样
    是从0开始 记位
      

  2.   

    这一行错误,table2.rows(i).cells(j).innerhtml=rd.item("教师")
    不过,删除这一行之后,后面两行一个个错。
      

  3.   

    问题出在row与cell的下标访问上!你可以在这里加上断点,让程序一步步的执行,那样就可以找到问题的具体所在了!!
      

  4.   

    <%@page language="vb"  debug="true" %>
    <%@import namespace="system.data" %>
    <%@import namespace="system.data.oledb" %>
    <HTML>
    <HEAD>
    <title>专用教室预订</title>
    <script language="VB" runat="server">
           Sub Page_Load(sender As Object, e As EventArgs) 
    if not page.ispostback then
               Dim i As Integer = 0
                Dim j As Integer = 0
                Dim Row As Integer = 0
                Dim r As HtmlTableRow
                Dim c As HtmlTableCell
                     
                For j = 0 To 8
                
                    r = new HtmlTableRow()
                                
                    If (row Mod 2 <> 0) Then
                        r.BgColor = "Gainsboro"
                    End If
                
                    For i = 0 To 10
                        c = new HtmlTableCell()
                        c.Controls.Add(new LiteralControl("空闲" ))
                        r.Cells.Add(c)
                    Next i
                    
                    Table2.Rows.Add(r)
                Next j
         For i=0 To Table1.Rows.Count - 1
               For j=0 To Table1.Rows(i).Cells.Count - 1
                   Table1.Rows(i).Cells(j).Width = "75" 
                   Table1.Rows(i).Cells(j).height = "15"
               Next j
         Next i                     
         For i=0 To Table2.Rows.Count - 1
                For j=0 To Table2.Rows(i).Cells.Count - 1
                   Table2.Rows(i).Cells(j).Width = "75" 
                   Table2.Rows(i).Cells(j).height = "25"
                Next j
         Next i
                Table1.Rows(0).Cells(1).InnerText = "上   午"
    Table1.Rows(0).Cells(2).InnerText = "下   午"
    Table1.Rows(0).Cells(3).InnerText = "晚   上"
    Table1.Rows(1).Cells(1).InnerText = "1"
        Table1.Rows(1).Cells(2).InnerText = "2"
    Table1.Rows(1).Cells(3).InnerText = "3"
    Table1.Rows(1).Cells(4).InnerText = "4"
    Table1.Rows(1).Cells(5).InnerText = "5"
    Table1.Rows(1).Cells(6).InnerText = "6"
    Table1.Rows(1).Cells(7).InnerText = "7"
    Table1.Rows(1).Cells(8).InnerText = "8"
    Table1.Rows(1).Cells(9).InnerText = "9"
    Table1.Rows(1).Cells(10).InnerText = "10"
    Table2.Rows(0).Cells(0).InnerText = "多媒体教室"
    Table2.Rows(1).Cells(0).InnerText = "物理实验室一"
    Table2.Rows(2).Cells(0).InnerText ="物理实验室二"
    Table2.Rows(3).Cells(0).InnerText = "化学实验室一"
    Table2.Rows(4).Cells(0).InnerText = "化学实验室二"
    Table2.Rows(5).Cells(0).InnerText = "生物实验室"
    Table2.Rows(6).Cells(0).InnerText = "语音室"
    Table2.Rows(7).Cells(0).InnerText = "阅览室"
    Table2.Rows(8).Cells(0).InnerText = "报告厅"
    Table2.Rows(0).Cells(0).bgcolor="#33CCFF"
    Table2.Rows(1).Cells(0).bgcolor="#33CCFF"
    Table2.Rows(2).Cells(0).bgcolor="#33CCFF"
    Table2.Rows(3).Cells(0).bgcolor="#33CCFF"
    Table2.Rows(4).Cells(0).bgcolor="#33CCFF"
    Table2.Rows(5).Cells(0).bgcolor="#33CCFF"
    Table2.Rows(6).Cells(0).bgcolor="#33CCFF"
    Table2.Rows(7).Cells(0).bgcolor="#33CCFF"
    Table2.Rows(8).Cells(0).bgcolor="#33CCFF"
    dim rd as oledbdatareader
    dim lrd
    dim conn as oledbconnection=nothing
    dim connstr,sql,shijian,shijian1 as string
    connstr= "provider=microsoft.jet.oledb.4.0;data source="&server.mappath("class.mdb")
    conn= new oledbconnection(connstr)
    conn.open()
    sql= "select 日期,教室,教师,学科,节次 from class1 where 日期 = '" & shijian & "'"
    dim cmdd as oledbcommand= new oledbcommand(sql,conn)
    lrd=cmdd.executereader()
    rd=lrd
    shijian1=shijian
    riqi.text=date.today()
    dim dm as datetime
    riqi.text+=dm.dayofweek.tostring
    table1.rows(0).cells(0).innerhtml=shijian1
    while rd.read()
    select case rd.item("教室")
    case "多媒体教室"
    i="0"
    case "物理实验室一"
    i="1"
    case "物理实验室二"
    i="2"
    case "化学实验室一"
    i="3"
    case "化学实验二"
    i="4"
    case "生物实验室"
    i="5"
    case "语音室"
    i="6"
    case "阅览室"
    i="7"
    case "报告厅"
    i="8"
    end select
    j=rd.item("节次")
    table2.rows(i).cells(j).innerhtml=rd.item("教师")
    table2.rows(i).cells(j).innerhtml+="<br>"
    table2.rows(i).cells(j).innerhtml+=rd.item("学科")
    end while
    conn.close
    end if 
           End Sub
      </script>