我有这样的代码
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
正如标题所说,只要返回多行,我就能得到结果,但如果结果是单行,就会超时。我肯定我错过了一些愚蠢的东西,或者做错了。我是一个PHP开发人员,被迫编写一些。net,所以请温柔:)
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
这是从SqlDataReader
中检索数据的一种稍微不同的方法,即使其中只有一条记录,它也可以正常工作。