我試圖在決定將什麼輸入到ASP.net下拉列表中之前檢查字段的值。DataReader.Read()跳過記錄集的第一行
我正在使用datareader.Read()爲了讀取記錄集,所以我可以做到這一點。但是,這會跳過第一行數據。 。下拉框基本上是大小和顏色的列表。 。 。所以目前我缺少第一個尺寸。
下面是代碼:
Using cmd As New SqlCommand("doGetAllSizesForProduct", oConn)
cmd.CommandType = CommandType.StoredProcedure
cmd.Parameters.AddWithValue("@id", CType(Request.QueryString("id"), Integer))
oConn.Open()
Using dr As SqlDataReader = cmd.ExecuteReader()
If dr.HasRows() = True Then
dr.Read()
ddlSize.Visible = True
pnlSize.Visible = True
pnlNoStock.Visible = False
If dr("colour") = "None" Then
ddlSize.DataTextField = "size"
Else
ddlSize.DataTextField = "sizeColour"
End If
ddlSize.DataValueField = "mapperid"
ddlSize.DataSource = dr
ddlSize.DataBind()
Else
End If
dr.Close()
End Using
End Using
我想要麼必須有比讀或其他方式的另一種方法來阻止它跳過第一個記錄?
oscilatingcretin,這是非常接近我所需要的,唯一的問題是,它不工作排排找出行顏色=「無」,只有你選擇的行。我將如何使它在逐行的基礎上解決這個問題,感謝您的幫助至今 – Scrappy
我不確定你的意思。上面的代碼基本上和你的代碼完全一樣,但是用一個數據表而不是一個閱讀器。你原來的代碼只能對'dr.Read()'進行一次調用,所以它只能用於一次迭代。對於初學者,我的解決方案是否至少用所有數據填充下拉菜單? – oscilatingcretin
上面的代碼確實填充了我的下拉菜單。但是,例如,如果第一個值是「Medium Red」,那麼它會顯示每個迭代的大小和顏色,因此即使第二個值爲「Medium None」,它也將顯示「Medium None」,而不是「Medium」,因爲它沒有對每一次迭代進行檢查。同樣,如果第一個值爲「中等無」,則它將顯示爲「中」,但「中紅」的第二個值也只會顯示爲「中」。我基本上只需要在每一次迭代中對它進行評估,而不僅僅是第0行。感謝您的幫助,非常感謝 – Scrappy