2012-04-30 120 views
0

我又回來了,因爲我在等待咖啡踢進去,還有另一個問題,似乎並沒有導致我的腦細胞正確啓動。VB .net - 存儲過程 - 行號計數

我已經設置了以下代碼來確定從過程循環返回的所有行的行號。

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

現在我試圖編寫一個按鈕,將用戶移動到不同的部分取決於返回的linenumber。

所以如果只有一個值爲1的亞麻布,他們會得到一個按鈕'Apply'。

如果總亞麻布值大於1,他們會得到一個按鈕來「選擇應用日期」。

現在我又有了一個大腦放屁,想不到1+的亞麻布如何確定按鈕應該顯示的邏輯。它需要包括1的值以及不止一個亞麻布,所以按鈕應顯示'選擇應用按鈕'。

任何想法?

謝謝!

+0

每個記錄是否有自己的按鈕? – JeffO

回答

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);   
} 
+0

我試圖避免在SP中做它,但反思它確實看起來好像這是最好的選擇。 – PipBoy

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 

但我認爲,如果LINENUM> 1,什麼地方你還必須能夠賦予用戶的事情SEL列表從其中選擇一種方法。像建立一個下拉框或其他東西。