Reputation: 1779
I have this code
If (sqlDataRdr.HasRows) Then
Do While sqlDataRdr.Read()
outstring = outstring & Trim(sqlDataRdr.Item("a_bill_number").ToString()) & "|" & Trim(sqlDataRdr.Item("ad_old_amount").ToString()) & "|" & Trim(sqlDataRdr.Item("c_cid_name1").ToString()) & "|" & Trim(sqlDataRdr.Item("bs_prev_read_date").ToString()) & "|" & Trim(sqlDataRdr.Item("bs_read_date").ToString()) & "*"
Loop
Else
outstring = "No records found for the entered criteria. Please try again."
End If
As the title says, I get results fine as long as there are multiple rows returned, but it times out if the result is a single row. I'm sure I'm missing something silly, or doing it wrong. I'm a PHP developer being forced to write some .net so be gentle :)
Upvotes: 0
Views: 72
Reputation: 856
Try This :
If (sqlDataRdr.HasRows) Then
While sqlDataRdr.Read()
outstring = outstring & Trim(sqlDataRdr.GetValue(sqlDataRdr.GetOrdinal("a_bill_number"))) & "|" & Trim(sqlDataRdr.GetValue(sqlDataRdr.GetOrdinal("ad_old_amount"))) & "|" & Trim(sqlDataRdr.GetValue(sqlDataRdr.GetOrdinal("c_cid_name1"))) & "|" & Trim(sqlDataRdr.GetValue(sqlDataRdr.GetOrdinal("bs_prev_read_date"))) & "|" & Trim(sqlDataRdr.GetValue(sqlDataRdr.GetOrdinal("bs_read_date"))) & "*"
end While
Else
outstring = "No records found for the entered criteria. Please try again."
End If
This is a slightly different approach to retrieve data from SqlDataReader
and it works fine even if there's only one record in it.
Upvotes: 1