|
ASP.NET 2.0 Professional If you are an experienced ASP.NET programmer, this is the forum for your 2.0 questions. Please also see the Visual Web Developer 2005 forum. |
Welcome to the p2p.wrox.com Forums.
You are currently viewing the ASP.NET 2.0 Professional section of the Wrox Programmer to Programmer discussions. This is a community of software programmers and website developers including Wrox book authors and readers. New member registration was closed in 2019. New posts were shut off and the site was archived into this static format as of October 1, 2020. If you require technical support for a Wrox book please contact http://hub.wiley.com
|
|
|
September 18th, 2008, 09:22 AM
|
Authorized User
|
|
Join Date: Jun 2003
Posts: 22
Thanks: 1
Thanked 0 Times in 0 Posts
|
|
Trouble Using For Next Statement
Hi, I am returning records from my database as follows:
3 Elementary Teaching Learning Behavior Spe*****t I
3 Elementary Teaching Learning Behavior Spe*****t I-Supervising
3 Elementary Teaching Learning Disabilities
3 Elementary Teaching Mental Retardation
4 Early Childhood Teaching Self Contained General Education Age 0 - Grade 3
9 Secondary Teaching Learning Behavior Spe*****t I
9 Secondary Teaching Learning Behavior Spe*****t I-Supervising
9 Secondary Teaching Learning Disabilities
9 Secondary Teaching Mental Retardation
What I want is the following:
3 Elementary Teaching
Learning Behavior Spe*****t I
Learning Behavior Spe*****t I-Supervising
Learning Disabilities
Mental Retardation
4 Early Childhood Teaching
Self Contained General Education Age 0 - Grade 3
9 Secondary Teaching
Learning Behavior Spe*****t I
Learning Behavior Spe*****t I-Supervising
Learning Disabilities
Mental Retardation
Where 3,4 and 9 are the cert codes; Elementary Teaching, Early Childhood Teaching and Secondary Teaching are the cert desc; Learning Behavior Spe*****t I, Learning Behavior Spe*****t I-Supervising, Mental Retardation, etc are the endrs desc.
My code is not returning the desired results. Here is the code:
If p_intRecords > 0 Then
For p_intCount = 0 To p_dsData.Tables(0).Rows.Count - 1
If String.IsNullOrEmpty(p_dsData.Tables(0).Rows(p_int Count).Item("cert_renew_fy").ToString) Then
strRenewYr = " Not Registered"
Else
strRenewYr = "06/30/" & CStr(CInt(p_dsData.Tables(0).Rows(p_intCount).Item ("cert_renew_fy")) - 1)
End If
p_strCerts &= "Cert Code:" & CStr(p_dsData.Tables(0).Rows(p_intCount).Item("cer t_code")) & ", "
p_strCerts &= CStr(p_dsData.Tables(0).Rows(p_intCount).Item("cer t_desc"))
p_strCerts &= ControlChars.CrLf
For p_intCountEndrs = 0 To p_dsData.Tables(0).Rows.Count - 1
p_strEndrs &= "Endrs:" & CStr(p_dsData.Tables(0).Rows(p_intCount).Item("end rs_desc")) & ", "
Next
p_strCombo = p_strCerts & p_strEndrs
p_strCombo &= ControlChars.CrLf
Next
Any ideas as to what I am doing wrong? Your help is greatly appreciated! Thanks
SLBIBS
__________________
SLBIBS
|
September 18th, 2008, 09:48 AM
|
Friend of Wrox
|
|
Join Date: Jun 2003
Posts: 2,189
Thanks: 5
Thanked 59 Times in 57 Posts
|
|
Looks like the second for next should not read the row count.. maybe another thing?
HTH
Gonzalo
================================================== =========
Read this if you want to know how to get a correct reply for your question:
http://www.catb.org/~esr/faqs/smart-questions.html
^^Took that from dparsons signature and he Took that from planoie's profile
================================================== =========
My programs achieved a new certification (can you say the same?):
WORKS ON MY MACHINE
http://www.codinghorror.com/blog/archives/000818.html
================================================== =========
I know that CVS was evil, and now i got the proof:
http://worsethanfailure.com/Articles...-Hate-You.aspx
================================================== =========
|
September 18th, 2008, 11:10 AM
|
Authorized User
|
|
Join Date: Jun 2003
Posts: 22
Thanks: 1
Thanked 0 Times in 0 Posts
|
|
Actually, the code that returns the following:
3 Elementary Teaching Learning Behavior Spe*****t I
3 Elementary Teaching Learning Behavior Spe*****t I-Supervising
3 Elementary Teaching Learning Disabilities
3 Elementary Teaching Mental Retardation
4 Early Childhood Teaching Self Contained General Education Age 0 - Grade 3
9 Secondary Teaching Learning Behavior Spe*****t I
9 Secondary Teaching Learning Behavior Spe*****t I-Supervising
9 Secondary Teaching Learning Disabilities
9 Secondary Teaching Mental Retardation
is the following code:
If p_intRecords > 0 Then
For p_intCount = 0 To p_dsData.Tables(0).Rows.Count - 1
If String.IsNullOrEmpty(p_dsData.Tables(0).Rows(p_int Count).Item("cert_renew_fy").ToString) Then
strRenewYr = " Not Registered"
Else
strRenewYr = "06/30/" & CStr(CInt(p_dsData.Tables(0).Rows(p_intCount).Item ("cert_renew_fy")) - 1)
End If
p_strCerts &= "Cert Code:" & CStr(p_dsData.Tables(0).Rows(p_intCount).Item("cer t_code")) & ", "
p_strCerts &= CStr(p_dsData.Tables(0).Rows(p_intCount).Item("cer t_desc")) & ", "
p_strCerts &= "Endrs:" & CStr(p_dsData.Tables(0).Rows(p_intCount).Item("end rs_desc")) & ", "
If CStr(p_dsData.Tables(0).Rows(p_intCount).Item("end rs_grd_lvl").ToString.Trim) <> vbNullString Then
p_strCerts &= "Endrs Grade Lvl:" & CStr(p_dsData.Tables(0).Rows(p_intCount).Item("end rs_grd_lvl")) & ", "
End If
p_strCerts &= "Registered Through: " & strRenewYr
p_strCerts &= ControlChars.CrLf
Next
I added the additional FOR NEXT in an attempt to return ONLY the Endrs Desc for the Cert Code in the intial FOR statement.
SLBIBS
|
September 18th, 2008, 11:17 AM
|
Friend of Wrox
|
|
Join Date: Jun 2003
Posts: 2,189
Thanks: 5
Thanked 59 Times in 57 Posts
|
|
Did you trace your code?? this can be easily fixed tracing the error..
HTH
Gonzalo
================================================== =========
Read this if you want to know how to get a correct reply for your question:
http://www.catb.org/~esr/faqs/smart-questions.html
^^Took that from dparsons signature and he Took that from planoie's profile
================================================== =========
My programs achieved a new certification (can you say the same?):
WORKS ON MY MACHINE
http://www.codinghorror.com/blog/archives/000818.html
================================================== =========
I know that CVS was evil, and now i got the proof:
http://worsethanfailure.com/Articles...-Hate-You.aspx
================================================== =========
|
September 18th, 2008, 04:27 PM
|
Friend of Wrox
|
|
Join Date: Jun 2008
Posts: 1,649
Thanks: 3
Thanked 141 Times in 140 Posts
|
|
Not sure why you are surprised that the names aren't "grouped". You have no code whatsoever in there that even attempts to group them.
I'm not sure this is what you want, but see if it gets you closer:
Code:
If p_intRecords > 0 Then
Dim curTable As DataTable = p_dsData.Tables(0)
Dim curCertCode As String = ""
For p_intCount = 0 To curTable.Rows.Count - 1
Dim curRow As DataRow = curTable.Rows(p_intCount)
Dim certCode As String = CStr(curRow.Item("cert_code"))
If curCertCode <> certCode Then
' when cert_code changes, then and only then add a row for the cert code:
curCertCode = certCode
p_strCerts &= "Cert Code:" & curCertCode & ", " _
& CStr(curRow.Item("cert_desc")) & ControlChars.CrLf
End If
Dim strRenewYear As String = curRow.Item("cert_renew_fy").ToString
If String.IsNullOrEmpty(strRenewYear) Then
strRenewYr = " Not Registered"
Else
strRenewYr = "06/30/" & CStr( CInt(strRenewYear)-1 )
End If
p_strCerts &= "Endrs:" & CStr(curRow.Item("endrs_desc")) & ", "
Dim grdLvl As String = curRow.Item("endrs_grd_lvl").ToString.Trim
If grdLvl <> vbNullString Then p_strCerts &= "Endrs Grade Lvl:" & grdLvl & ", "
p_strCerts &= "Registered Through: " & strRenewYr
p_strCerts &= ControlChars.CrLf
Next
End If
Notice how I have used intermediate variables to shorten the code and, not so incidentally, make it run faster.
|
September 18th, 2008, 05:03 PM
|
Friend of Wrox
|
|
Join Date: Jun 2008
Posts: 1,649
Thanks: 3
Thanked 141 Times in 140 Posts
|
|
Some minor improvements (and a correction) to that code:
Code:
If p_intRecords > 0 Then
Dim curTable As DataTable = p_dsData.Tables(0)
Dim curCertCode As String = ""
For Each curRow As DataRow in curTable.Rows
Dim certCode As String = CStr(curRow.Item("cert_code"))
If curCertCode <> certCode Then
' when cert_code changes, then and only then add a row for the cert code:
curCertCode = certCode
p_strCerts &= "Cert Code:" & curCertCode & ", " _
& CStr(curRow.Item("cert_desc")) & ControlChars.CrLf
End If
' notice how we put responsibility of the comma
' onto the *following* data, not the preceding:
p_strCerts &= "Endrs:" & CStr(curRow.Item("endrs_desc"))
Dim grdLvl As String = curRow.Item("endrs_grd_lvl").ToString.Trim
If grdLvl <> vbNullString Then p_strCerts &= ", Endrs Grade Lvl:" & grdLvl
' not best way to do all this, but at least better now
Dim strRenew As String = curRow.Item("cert_renew_fy").ToString
If String.IsNullOrEmpty(strRenew) Then
strRenew = ", Not Registered"
Else
strRenew = ", Registered through 06/30/" & CStr( CInt(strRenew)-1 )
End If
p_strCerts &= strRenew & ControlChars.CrLf
Next
End If
|
September 18th, 2008, 05:09 PM
|
Friend of Wrox
|
|
Join Date: Jun 2008
Posts: 1,649
Thanks: 3
Thanked 141 Times in 140 Posts
|
|
Is anybody besides me amused that
S p e c i a l i s t
is displayed here as
Spe*****t
???
And of course that is because it contains the letters "c i a l i s" which *OF COURSE* constitute spam.
The other day, I saw
M o u s e X
turned into
Mou****
Come on forum admins! If people are registered, don't apply ticky-tacky stupid filters like that! If the abuse posting priveleges, block them from posting and delete their posts. But don't turn good code into meaningless hash.
|
September 19th, 2008, 08:40 AM
|
Authorized User
|
|
Join Date: Jun 2003
Posts: 22
Thanks: 1
Thanked 0 Times in 0 Posts
|
|
Old Pendant, your code seems to work great (although I am throwing an error in debug mode in another block of code now)!! With your code and in Debug mode, I saw what I was looking for. I really appreciate your help (and the input from others) in getting me over the hump!!
SLBIBS
|
September 19th, 2008, 09:44 AM
|
Authorized User
|
|
Join Date: Jun 2003
Posts: 22
Thanks: 1
Thanked 0 Times in 0 Posts
|
|
Old Pedant (sorry for the last post where I misspelled your moniker) the code works PERFECT!!
SLBIBS
|
|
|