台灣最大程式設計社群網站
線上人數
878
 
會員總數:240116
討論主題:186186
歡迎您免費加入會員
討論區列表 >> C# >> * GridView中加入自動編號的序號 編號遞減
[ 變換順序 ]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
* GridView中加入自動編號的序號 編號遞減
價值 : 150 QP  點閱數:226 回應數:12

樓主

mick
初學者
20 39
556 117
發送站內信

捐贈 VP 給 mick

不好意思我想請問一下

如果我有一個報名表,報名人數會一直增加
我用GridView列出報名者資料
我再前面加一個欄位"序號"
是用

這語法去增加的,所以SQL裡面沒這欄位
想請問一下這只能遞增嗎??
如果要遞減該如何修改呢??
麻煩告知一下,謝謝!!

搜尋相關Tags的文章: [ 自動編號的序號 ] ,
本篇文章發表於2017-06-30 11:51
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
回應

春天
檢舉此回應
GridView1.Rows.Count - (GridView1.Rows.Index + (GridView1.PageIndex * GridView1.PageSize))
這樣試試
本篇文章回覆於2017-06-30 12:17
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
作者回應

mick
捐贈 VP 給 mick 檢舉此回應
謝謝春天大大
我剛試了一下
在GridView1.Rows.Index 的.Index 出現錯誤,
我剛又試了還是不行
本篇文章回覆於2017-06-30 14:36
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
作者回應

mick
捐贈 VP 給 mick 檢舉此回應
謝謝春天大大
出現了以下的錯誤訊息:

編譯器錯誤訊息: CS1061: 'System.Web.UI.WebControls.GridViewRowCollection' 不包含 'Index' 的定義,也找不到擴充方法 'Index' 來接受型別 'System.Web.UI.WebControls.GridViewRowCollection' 的第一個引數 (您是否遺漏 using 指示詞或組件參考?)

本篇文章回覆於2017-06-30 15:23
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
回應

adrian
檢舉此回應
如果SQL是MSSQL的話可以用ROW_NUMBER依指定的欄位排序,並逐筆加上流水號ROWID
ex:SELECT ROW_NUMBER() OVER(ORDER BY CustomerID) AS ROWID ,* FROM Orders
本篇文章回覆於2017-06-30 15:59
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
作者回應

mick
捐贈 VP 給 mick 檢舉此回應
adrian 大大您好,因為序號不存入資料庫
,所以沒辦法排序,謝謝!!
是希望用GridView秀出資料時最
前面自動加入一個序號,但序號不是遞增
而是有總筆數遞減,只是總筆數一直在變動(因為會有人報名)

不過還是謝謝adrian 大大
本篇文章回覆於2017-06-30 16:05
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
回應

adrian
檢舉此回應
只是改sql,並沒有存入資料庫,遞減排序的可以後面加
ex:SELECT ROW_NUMBER() OVER(ORDER BY CustomerID) AS ROWID ,* FROM Orders order by ROW_NUMBER() OVER(ORDER BY CustomerID) desc
本篇文章回覆於2017-06-30 16:08
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
7樓
作者回應

mick
捐贈 VP 給 mick 檢舉此回應

adrian 大大的意思是加一個SqlDataSource嗎??

然後用GridView去抓嗎??
本篇文章回覆於2017-06-30 16:21
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
8樓
回應

春天
檢舉此回應
感謝6樓的DESC...
本篇文章回覆於2017-06-30 16:34
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
9樓
回應

春天
檢舉此回應
adrian 大的意思是 你的GridView資料來源若是MSSQL 可以使用這個語法,主要是ROW_NUMBER() OVER(ORDER BY ColumnName)可以自動產生序號,再利用ORDER BY DESC來遞減排序

SELECT
ROW_NUMBER() OVER(ORDER BY 報名人姓名) AS '序號', 報名人姓名
FROM 報名資料
ORDER BY ROW_NUMBER() OVER(ORDER BY 報名人姓名) DESC

從DB下手 前端就只負責接收資料
本篇文章回覆於2017-06-30 16:38
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
10樓
作者回應

mick
捐贈 VP 給 mick 檢舉此回應
不好意思,我不是粉懂,可以麻煩說明一下,謝謝!!
本篇文章回覆於2017-06-30 17:04
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
11樓
回應

春天
檢舉此回應
你資料哪裡來的,你如何知道DB裡沒有這個欄位?
本篇文章回覆於2017-06-30 18:20
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
12樓
回應

四百龍銀
檢舉此回應
意思就是 你應該由資料來源去動手
Gridview是容器 不建議有太多的規則在前面,

EX:後端程式碼傳回Datatable給GridView,則建議由Datatable先做好排序
上方討論串的意思就是 若你Datatable的資料是由SQL產生 可以使用SQL先排好在吐出來
如果不是 你就必須對Datatable動手
本篇文章回覆於2017-07-04 13:19
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
[ 變換順序 ]   
1

回覆
如要回應,請先登入.