Mobile ObjectList problem loadind array The DataField 'TheTime' does not exist in the source data?

Posted on 2007-11-25
Last Modified: 2010-04-21

This is perplaxing.  I am new to development for mobile application so maybe I am missing something.
I want the players in my hockey league to have mobile cell phone access to the league schedule.  I can do this but when I add an extra field "TheTime", I get the following error:

The DataField 'TheTime' does not exist in the source data.  Specify a different DataField property, or remove the field.

I KNOW this field exists and when I write the code for a regular data reader, no problem.  I am using the same sql stored procedure for both.

Here's my sub.  I've created a class to hold the gameschedule so I can have more than one field in the objectlist.  This works on the web now at but as soon as I try to add TheTime field everything crashes:

Code attached

<%@ Page Language="VB" Inherits="System.Web.UI.MobileControls.MobilePage" %>
<%@ import Namespace="System.Data.SqlClient" %>
<%@ Register TagPrefix="mobile" Namespace="System.Web.UI.MobileControls" Assembly="System.Web.Mobile" %>
<script runat="server">
    Private Class GameSchedule
        Dim _thedate, _time, _hometeam, _awayteam, _venue As String
        Public Sub New(ByVal thedate As String, ByVal thetime As String, ByVal hometeam As String, ByVal awayteam As String, ByVal venue As String)
            _thedate = thedate
            _time = time
            _hometeam = hometeam
            _awayteam = awayteam
            _venue = venue
        End Sub
        Public ReadOnly Property hometeam() As String
                Return _hometeam
            End Get
        End Property
        Public ReadOnly Property awayteam() As String
                Return _awayteam
            End Get
        End Property
        Public ReadOnly Property thedate() As String
                Return _thedate
            End Get
        End Property
        Public ReadOnly Property venue() As String
                Return _venue
            End Get
        End Property
        Public ReadOnly Property time() As String
                Return _time
            End Get
        End Property
    End Class
    Sub Page_Load()
        If Not Page.IsPostBack Then
            Dim myConnection = New SqlConnection(System.Configuration.ConfigurationManager.AppSettings("connectionstring"))
            Dim myCommand = New SqlCommand("qGetTeamsInfoForGridView", myConnection)
            myCommand.CommandType = Data.CommandType.StoredProcedure
            Dim reader As SqlDataReader = myCommand.ExecuteReader()
            List1.DataSource = reader
            ' Dim teamid As Integer
            ' Dim shortname As String
            If reader.HasRows Then
                List1.DataTextField = "ShortName"
                List1.DataValueField = "TeamID"
            End If
        End If
    End Sub
    Sub GetTeamSchedule(ByVal Src As Object, ByVal Args As ListCommandEventArgs)
        Dim teamname As String
        Dim teamid As Integer
        teamid = Args.ListItem.Value
        teamname = Args.ListItem.Text
        Dim myConnection = New SqlConnection(System.Configuration.ConfigurationManager.AppSettings("connectionstring"))
        Dim myCommand = New SqlCommand("qGetScheduleWithTeamID", myConnection)
        myCommand.CommandType = Data.CommandType.StoredProcedure
        myCommand.Parameters.Add(New SqlParameter("@teamid", Data.SqlDbType.Int))
        myCommand.Parameters("@teamid").Value = teamid
        Dim reader As SqlDataReader = myCommand.ExecuteReader()
        Dim schedulearray As New ArrayList()
        If reader.HasRows Then
            While reader.Read() = True
                schedulearray.Add(New GameSchedule(reader("TheDate"), reader("TheTime"), reader("hometeam"), reader("awayteam"), "C_Center"))
            End While
            Title.Text = "Two Weeks - Schedule: " & teamname
            ObjectListSchedule.DataSource = schedulearray
        End If
        ActiveForm = Form2
    End Sub
<html xmlns="" >
    <mobile:form id="form1" runat="server">
        <mobile:Label ID="Label1" Runat="server">QIIHL Teams: Schedule</mobile:Label>
        <mobile:Label ID="Label2" Runat="server">Choose Team</mobile:Label>
        <br />
        <mobile:List ID="List1" Runat="server"  OnItemCommand="GetTeamSchedule" >
    <mobile:Form ID="Form2" Runat="server">
    <mobile:Label ID="Title" runat="server" StyleReference="title" Font-Size="Small">Schedule</mobile:Label>
        TableFields="TheDate;TheTime;HomeTeam;AwayTeam" CommandStyle-StyleReference="subcommand" Font-Size="Small" LabelStyle-StyleReference="title">
           <Field DataField="TheDate" Name="TheDate" Title="Date" />
           <Field DataField="TheTime" Name="TheTime" Title="Time" />
           <Field DataField="HomeTeam" Name="HomeTeam" Title="Home" />
           <Field DataField="AwayTeam" Name="AwayTeam" Title="Away" />
        <mobile:Link ID="Link1" Runat="server" NavigateUrl="#form1">Team List</mobile:Link>

Open in new window

Question by:vstack
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 2

Accepted Solution

gocemi earned 500 total points
ID: 20348709

Do you fetch "TheTime" - field from the DB?
Do you convert data in String?
start the debug, add breakpoint on line  102 and view "reader" properties in the QuickWatch window


Author Comment

ID: 20349198
I fetch it from the DB.  I will try .ToString.  Thanks

Author Closing Comment

ID: 31410862
Thanks, I've finally worked this out.  Part of the solution was the .ToString on the date

Featured Post

Enroll in May's Course of the Month

May’s Course of the Month is now available! Experts Exchange’s Premium Members and Team Accounts have access to a complimentary course each month as part of their membership—an extra way to increase training and boost professional development.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

This article discusses the ASP.NET AJAX ModalPopupExtender control. In this article we will show how to use the ModalPopupExtender control, how to display/show/call the ASP.NET AJAX ModalPopupExtender control from javascript, how to show/display/cal…
Today is the age of broadband.  More and more people are going this route determined to experience the web and it’s multitude of services as quickly and painlessly as possible. Coupled with the move to broadband, people are experiencing the web via …
The Email Laundry PDF encryption service allows companies to send confidential encrypted  emails to anybody. The PDF document can also contain attachments that are embedded in the encrypted PDF. The password is randomly generated by The Email Laundr…
This video shows how to use Hyena, from SystemTools Software, to update 100 user accounts from an external text file. View in 1080p for best video quality.

738 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question