我试图在决定将什么输入到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