Vincent Stack
asked on
Mobile ObjectList problem loadind array The DataField 'TheTime' does not exist in the source data?
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
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>
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
Thanks, I've finally worked this out. Part of the solution was the .ToString on the date
ASKER