Solved

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

Posted on 2007-11-25
3
525 Views
Last Modified: 2010-04-21
Hi,

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 www.qiihl.com/mobile/default.aspx 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

            Get

                Return _hometeam

            End Get

        End Property
 

        Public ReadOnly Property awayteam() As String

            Get

                Return _awayteam

            End Get

        End Property

        

        Public ReadOnly Property thedate() As String

            Get

                Return _thedate

            End Get

        End Property

        

        Public ReadOnly Property venue() As String

            Get

                Return _venue

            End Get

        End Property

        

        Public ReadOnly Property time() As String

            Get

                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"))

            myConnection.Open()

            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"

                List1.DataBind()

       

            

            End If

            

            reader.Close()

            myConnection.Close()

	

        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"))

        myConnection.Open()

        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

            ObjectListSchedule.DataBind()

        End If

        

        reader.Close()

        myConnection.Close()

        ActiveForm = Form2

    End Sub
 

</script>
 

<html xmlns="http://www.w3.org/1999/xhtml" >

<body>

    <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:List>
 

    </mobile:form>

    <mobile:Form ID="Form2" Runat="server">

    <mobile:Label ID="Title" runat="server" StyleReference="title" Font-Size="Small">Schedule</mobile:Label>

       <mobile:ObjectList

        ID="ObjectListSchedule" 

        Runat="server" 

        AutoGenerateFields="False" 

        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:ObjectList> 

        <mobile:Link ID="Link1" Runat="server" NavigateUrl="#form1">Team List</mobile:Link>

</mobile:Form>
 

</body>

</html>

Open in new window

0
Comment
Question by:vstack
  • 2
3 Comments
 
LVL 5

Accepted Solution

by:
gocemi earned 500 total points
ID: 20348709
Hi,

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

Regards
0
 

Author Comment

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

Author Closing Comment

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

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

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

ASP.Net to Oracle Connectivity Recently I had to develop an ASP.NET application connecting to an Oracle database.As I am doing it first time ,I had to solve several problems. This article will help to such developers  to develop an ASP.NET client…
It was really hard time for me to get the understanding of Delegates in C#. I went through many websites and articles but I found them very clumsy. After going through those sites, I noted down the points in a easy way so here I am sharing that unde…
Internet Business Fax to Email Made Easy - With  eFax Corporate (http://www.enterprise.efax.com), you'll receive a dedicated online fax number, which is used the same way as a typical analog fax number. You'll receive secure faxes in your email, f…
Hi friends,  in this video  I'll show you how new windows 10 user can learn the using of windows 10. Thank you.

911 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

16 Experts available now in Live!

Get 1:1 Help Now