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
  • 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

Top 6 Sources for Identifying Threat Actor TTPs

Understanding your enemy is essential. These six sources will help you identify the most popular threat actor tactics, techniques, and procedures (TTPs).

Join & Write a Comment

Suggested Solutions

Sometimes in DotNetNuke module development you want to swap controls within the same module definition.  In doing this DNN (somewhat annoyingly) swaps the Skin and Container definitions to the default admin selections.  To get around this you need t…
I recently went through the process of creating a Calendar Control of events with the basis of using a database to keep track of the dates that are selectable, one requirement was to have the selected date pop-up in a simple lightbox.  At first this…
This demo shows you how to set up the containerized NetScaler CPX with NetScaler Management and Analytics System in a non-routable Mesos/Marathon environment for use with Micro-Services applications.
You have products, that come in variants and want to set different prices for them? Watch this micro tutorial that describes how to configure prices for Magento super attributes. Assigning simple products to configurable: We assigned simple products…

744 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

Need Help in Real-Time?

Connect with top rated Experts

10 Experts available now in Live!

Get 1:1 Help Now