台灣最大程式設計社群網站
線上人數
1019
 
會員總數:245961
討論主題:189545
歡迎您免費加入會員
討論區列表 >> VB.NET >> Gridview判斷重複資料顯示空白
[]  
[我要回覆]
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
Gridview判斷重複資料顯示空白
價值 : 65 QP  點閱數:504 回應數:16
樓主

Wiz
門外漢
0 9
183 31
發送站內信

各位前輩好
如題所述,我有一個GridView,已經寫好SQL查詢語法,按下Button後可以秀出資料,
我想要讓秀出來的資料,假如說資料如下:

欄位1 欄位2
北一 北A
北一 北B
北一 北C
北一 北D
北二 北E
北二 北F
北二 北G
北二 北H

我想讓欄位1下面的資料,如果有重複的話只顯示第一個,變成這樣:

欄位1 欄位2
北一 北A
北B
北C
北D
北二 北E
北F
北G
北H


我要怎麼抓資料去設判斷呢,
有大概知道要用For迴圈去判斷
先設一個空字串A
If 欄位1資料 不等於 字串A(空字串)
就不做任何動作(讓資料顯示)
並且讓A等於欄位1內的字串(空字串A變成不是空的)
Else
欄位1 = ""
End If
第二次跑迴圈
因為A字串已經等於欄位1了
所以只會執行Else的程式

但我不知道該怎麼抓GridView欄位1的資料,甚至是欄位2,欄位3
然後該怎麼判斷多種情況
就像我上面說的
讓欄位1裡面 重複的 "北一""北二"只顯示第一筆

再麻煩各位前輩給予指教了,謝謝



搜尋相關Tags的文章: [ GridView ] , [ item ] , [ Rows ] , [ 指定欄位資料顯示空白 ] ,
本篇文章發表於2019-11-25 16:24
1樓
回應

P陳
檢舉此回應
在Select 時解決可以嗎? 類似如下
Select 欄位1,Min(欄位2) as 最小值 Group 欄位1
不必等進來後再處理
本篇文章回覆於2019-11-25 17:01
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
回應

P陳
檢舉此回應
以上回錯了 全部只會回第一筆而已
本篇文章回覆於2019-11-25 17:02
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
作者回應

Wiz
檢舉此回應
P陳前輩好,
請問一下您打的那段語法是甚麼意思呢,
查了一下是查最小值,
但不知道跟我的GridView資料的關聯是甚麼這樣子
本篇文章回覆於2019-11-25 17:07
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
回應

P陳
檢舉此回應
反正您作看看就知道了。
但這只會出現 北一的第一筆及北二的第二筆,與您要求的不一樣。

您要的不難,您將那段程式寫好PO出來,讓大家來協助你改
本篇文章回覆於2019-11-25 17:11
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
回應

P陳
檢舉此回應
但這只會出現 北一的第一筆及北二的第二筆,與您要求的不一樣。

但這只會出現 北一的第一筆及北二的 (第一筆共二筆) ,與您要求的不一樣。 <----()內打錯了
本篇文章回覆於2019-11-25 20:21
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
作者回應

Wiz
檢舉此回應
謝謝p陳前輩回覆,
那請問我該PO哪段相關的程式碼呢?
如果是SQL的組合的話有一千多行可能不太方便...
主要目前是在試這串


但我想不出怎麼判斷北二....
本篇文章回覆於2019-11-26 08:31
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
7樓
不錯的參考

老頑童
捐贈 VP 給 老頑童 檢舉此回應
第5行改
AA = GridView1.Rows(i).Cells(0).Text
不用管它是北一還是北二
本篇文章回覆於2019-11-26 09:41
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
8樓
作者回應

Wiz
檢舉此回應
老頑童前輩你好,
我照著您的方式修改過後,


會變成一行顯示 一行空白這樣間隔

例如:
欄位1 欄位2
北一 北A
空白 北B
北一 北C
空白 北D
北二 北E
空白 北F
北二 北G
空白 北H

該怎麼修改才能呈現顯示第一個北一其他重複的北一都空白,然後第一個北二其他重複的北二都空白這樣




然後我剛剛才發現我文章輸出的地方空白被吃掉了
所以從上面的
欄位1 欄位2
北一 北A
北一 北B
北一 北C
北一 北D
北二 北E
北二 北F
北二 北G
北二 北H
到下面希望呈現的結果應該為

欄位1 欄位2
北一 北A
空白 北B
空白 北C
空白 北D
北二 北E
空白 北F
空白 北G
空白 北H



本篇文章回覆於2019-11-26 10:32
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
9樓
不錯的參考

P陳
檢舉此回應
程式看起來沒有問題
您的資料有用 欄位0 排序過嗎? order by 欄位1
Select * from table1 order by 欄位1


本篇文章回覆於2019-11-26 11:27
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
10樓
作者回應

Wiz
檢舉此回應
回P陳前輩
我是Order by 欄位1,欄位2
單看上面的程式也覺得沒問題
但不知道為甚麼執行結果卻是顯示字串跟空白相間
本篇文章回覆於2019-11-26 11:37
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
11樓
作者回應

Wiz
檢舉此回應
另外想請問一下,
GridView1.Rows(i).Cells(0).Text 的意思應該是指
第i筆(橫排)

第1格資料(欄位1下面那直行)的Text沒錯吧??
怕自己有理解錯誤
本篇文章回覆於2019-11-26 11:43
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
12樓
回應

老頑童
捐贈 VP 給 老頑童 檢舉此回應
你的程式是寫在哪個事件(Event)底下?
本篇文章回覆於2019-11-26 11:48
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
13樓
作者回應

Wiz
檢舉此回應
我是寫在GridView1的RowDataBound
本篇文章回覆於2019-11-26 11:56
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
14樓
最有價值解答

老頑童
捐贈 VP 給 老頑童 檢舉此回應
請把程式改到DataBound()下執行
RowDataBound是每完成一個Row就會執行一次
本篇文章回覆於2019-11-26 12:02
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
15樓
作者回應

Wiz
檢舉此回應
剛剛把他放到寫SQL查詢語法的Sub下面的GridView.DataBind()的後面後就執行成功了!
本篇文章回覆於2019-11-26 12:03
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   

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