VB .net - 存储过程 - 行号计数

时间:2012-04-30 13:46:09

标签: vb.net

我再次回来,因为我正在等待咖啡开始,并有另一个问题似乎没有导致我的脑细胞正确射击。

我已设置以下代码以确定从过程循环返回的所有行的行号。

linenum = 0
Do While (rsData.Read())
  linenum = linenum + 1
loop

现在我尝试编写一个按钮,根据返回的亚麻布将用户移动到不同的部分。

因此,如果只有一个值为1的亚麻布,他们会得到一个“应用”按钮。

如果总的衣物价值大于1,他们会得到一个按钮,以选择申请日期'。

现在再次我有一个大脑放屁,并且如果要显示1+如何确定按钮的亚麻布,则无法想到逻辑。它需要包含值1以及有多个亚麻布,因此按钮应显示“选择应用”按钮'。

有什么想法吗?

谢谢!

2 个答案:

答案 0 :(得分:0)

我认为你可以更好地填充DataTable并使用行索引,或者从存储过程中返回行号。

SELECT ROW_NUMBER() OVER(ORDER BY SalesYTD DESC) AS Row, FirstName, LastName, ROUND(SalesYTD,2,1) AS YTD 
FROM Sales.vSalesPerson
WHERE TerritoryName IS NOT NULL AND SalesYTD <> 0

您当前正在使用SqlDataReader,因此调整起来应该不会太难,因此会返回DataTable

DataTable table = new DataTable();

using (SqlDataAdapter adap = new SqlDataAdapter(cmd))
{
    adap.Fill(table);        
}

答案 1 :(得分:0)

不清楚你想要完成什么,但要直接回答你的问题:

if linenum = 0 then
  mybutton.visible = false
else if linenum = 1 then
  mybutton.visible = true
  mybutton.text = "Apply"
else
  mybutton.visible=true
  mybutton.text = "Apply select"
end if

但我认为如果亚麻&gt; 1,某个地方你还必须向用户提供可供选择的事物列表,以及选择其中一个的方法。就像建立一个下拉框或其他东西。