|
web
newsgroups
|
|||||||||||||||||||||||
|
|||||||||||||||||||||||
SystemIndexOutOfRangeException errordatatable subroutine (UseXMLDocument) , and I'm getting a "System.IndexOutOfRangeException: There is no row at position 0" at the " Data.Append(dtaData.Rows(0)("Name") & "<BR>") " line. <%@ Page Language="VB" debug="true"%>'''''''''''''' <SCRIPT LANGUAGE=VB RUNAT=SERVER> Private dtaData As DataTable = New DataTable() Private ID As String Private Name As String Private NewDataRow As DataRow Private ItemsOnlineDataURL As String Private Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Dim PreviousCategory As String = Nothing Dim Data As StringBuilder = New StringBuilder() Dim SalesRepID As String = Request.QueryString("SID") Dim PurchaseLink As String = "http://www.shoppe.com/ItemsOnline/Purchase.aspx?" Dim Spacer As String = "<IMG SRC=spacer.gif>" ItemsOnlineDataURL = "http://www.shoppe.com/ItemsOnline/Data/salesrep1.xml" Try dtaData.Columns.Add("ID") dtaData.Columns.Add("Name") dtaData.Columns.Add("PurchaseID") dtaData.Columns.Add("PkgName") dtaData.Columns.Add("SelectBlurb") dtaData.Columns.Add("PkgAmount") dtaData.Columns.Add("PkgPhone") dtaData.Columns.Add("DailyItem") dtaData.Columns.Add("Custom") dtaData.Columns.Add("WeeklyAmount") dtaData.Columns.Add("MonthlyAmount") dtaData.Columns.Add("Category") UseXmlDocument() Data.Append(dtaData.Rows(0)("Name") & "<BR>") Dim drwData As DataRowFor Each drwData In dtaData.Rows Dim SID As String = "SID=" & Convert.ToString(drwData("ID")) & "&" Dim PurchaseTypeID As String = Convert.ToString(drwData("PurchaseID")) Dim PkgAmount As String = FormatAmount(Convert.ToSingle(drwData("PkgAmount"))) Dim PkgPhone As String = Convert.ToString(drwData("PkgPhone")) Dim PurchaseType As String = (Convert.ToString(drwData("DailyItem")) ) '''''''''''' .....more coding can be provided if someone can in fact help decipher why I'm getting the error. TIA netsports Hi netsports,
Since dtaData is a newly created table, it has no rows yet. Therefore, you cannot access dtaData.Rows(0), since it does not exist. To add rows to a new table, use the NewRow() method of DataTable to create a row. Then, set the values of the fields of that new row. Finally, call dtaData.Rows.Add(yourNewRowObject). Hope this helps. -KJ KJ, thanks for the reply -
I have declared dtaData , and I thought I have declared a new row in the declarations below (and in my code above): ''''''''''''''' Private dtaData As DataTable = New DataTable() Private ID As String Private Name As String Private NewDataRow As DataRow '''''''''''''''''' netsports The code:
Data.Append(dtaData.Rows(0)("Name") & "<BR>") fails because dtaData.Rows has no rows in it (dtaData.Rows(0) =Nothing). So, before this line, assign a value to NewDataRow using the NewRow() method, for example: 'assign: NewDataRow = dtaData.NewRow() 'then set a value: NewDataRow("Name") = "foo" 'finally, assign the row to your table's Rows collection: dtaData.Rows.Add(NewDataRow) 'then you can do (no error) because Rows(0) is no longer Nothing: Data.Append(dtaData.Rows(0)("Name") & "<BR>") Give this a try and tell me what happens.Yeah, KJ, I think that does the trick (at least for now, as I have
encountered a different error downstream) . I had to use the ConvertC# toVB.NET program since the initial code was in C# , so it probably didnt do a true 100% conversion. Thanks again netsports
date/time fields
CheckForIllegalCrossThreadCalls ? Conditional statements throw/handle exceptions while using backgroundworker Strange maximize behaviour Queue of Threads How to use a Generic's base type? timing accuracy of VB.Net checkedlistbox and mouseleave event deleting files greater than x days |
|||||||||||||||||||||||