台灣最大程式設計社群網站
線上人數
1190
 
會員總數:245894
討論主題:189491
歡迎您免費加入會員
討論區列表 >> ASP.NET >> 大量label 顯示不同SQL的資料
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
大量label 顯示不同SQL的資料
價值 : 100 QP  點閱數:218 回應數:10
樓主

Curtis
門外漢
0 1
26 4
發送站內信

我使用visual studio 2017,想做一個座位表能從SQL server裡面抓出資料,今天誰填這個位置,顯示姓名,

我有用td拉出一個座位表,裡面有放label,想讓label顯示SQL裡面select到的姓名,大概是這樣:


因為要抓出當日的日期與座位,所以SQL的語法也寫好了,大概是這樣:


(先試一個F7M6的Label ID的座位)我後端是這樣寫,但是不知道為甚麼沒有我要select的東西:


想請教我是不是在哪裡出了錯?
以及我如果要這樣,在所有的label座位(83個)都是這樣使用,有沒有其他更好作法?

搜尋相關Tags的文章: [ asp ] , [ label ] , [ sql ] ,
本篇文章發表於2020-06-23 16:22
1樓
作者回應

Curtis
檢舉此回應
連接字串我先刪掉,因為insert的頁面可以正常使用,連接字串應該沒問題(?)
本篇文章回覆於2020-06-23 16:24
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
回應

topcat
捐贈 VP 給 topcat 檢舉此回應
想請教我是不是在哪裡出了錯?

你的語法在@name那邊怪怪的

應該是類似以下這樣
[姓名]=@name

本篇文章回覆於2020-06-23 18:39
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
回應

topcat
捐贈 VP 給 topcat 檢舉此回應
我如果要這樣,在所有的label座位(83個)都是這樣使用,有沒有其他更好作法?


建議您可以把這些label依據對應的位置給id
例如:
Label7FM6
Label7FM1
Label7FL6
...
之類的,請類推
然後您的SQL可以把樓層、區域、座號組合成類似的



之後,就可以透過迴圈
取Seat
然後透過CType(FindControl({取Seat}),Label).Text = {取姓名}

大概這樣的方向
您思考看看
^_^
本篇文章回覆於2020-06-23 18:52
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
建議您應該把人放在二微陣列裡面 或 座標 把你的lable 命名 A11 A12 A13 A21 A22 A23 這樣用迴圈搞定比較簡單吧
本篇文章回覆於2020-06-23 19:18
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
作者回應

Curtis
檢舉此回應
版主您好,不好意思,這是第一次寫網站的部分,可能問題有點多,或是做法比較粗糙,再麻煩指教了

應該是類似以下這樣
[姓名]=@name


那請問我SQL的語法改成這樣
[code]SqlCommand cmd = new SqlCommand(@"select [姓名] from [Table] where DATEDIFF(dd,[日期], GETDATE()) = 0 And[樓層] = '7F' And[區域] = 'M' And[座號] = '6' And [姓名] = @name", con);
[/code]
也無法成功顯示在Label上,還是我還是誤會了甚麼?


之後,就可以透過迴圈
取Seat
然後透過CType(FindControl({取Seat}),Label).Text = {取姓名}


不好意思,我不太懂為甚麼要 As seat,是可以把他們彙整成seat這個欄位名稱的意思嗎?

大概要做一個怎麼樣的迴圈才可以取到seat?

以及CType的部分是不是只能在VB上使用,我目前都在CS上寫,我該如何寫這個地方?

謝謝版主

本篇文章回覆於2020-06-24 11:18
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
作者回應

Curtis
檢舉此回應
建議您應該把人放在二微陣列裡面 或 座標 把你的lable 命名 A11 A12 A13 A21 A22 A23 這樣用迴圈搞定比較簡單吧

大大您好,
是指說label先放到陣列裡,再透過一個迴圈去跑語法的意思嗎?
我也有想過這個做法,但是我迴圈那部分不太知道該怎麼寫...
本篇文章回覆於2020-06-24 17:21
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
7樓
回應

想睡覺
檢舉此回應
請問您有 把 select [姓名] from [Table] where DATEDIFF(dd,[日期], GETDATE()) = 0 And[樓層] = '7F' And[區域] = 'M' And[座號] = '6' And [姓名] = @name
試著response write 出來放在sql上跑嗎?
本篇文章回覆於2020-06-24 17:29
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
8樓
回應

Allen
捐贈 VP 給 Allen 檢舉此回應
https://vimeo.com/432506308/2201bf8d30
我錄了一段影片,您可以參考
本篇文章回覆於2020-06-25 21:59
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
9樓
回應

topcat
捐贈 VP 給 topcat 檢舉此回應
我有用td拉出一個座位表,裡面有放label,想讓label顯示SQL裡面select到的姓名,大概是這樣:

這是您說的你已經拉好這樣的html表格,對嗎?

您要做的,是從資料庫把相對的座位取出,然後把姓名放入,是這樣的需求,對嗎?
從您的回覆中
小喵猜測您對於SQL不是很熟悉
很多的知識要補

SQL中的欄位別名,可以用AS

先描述一下您要做的
1.把要放的Label,取名跟您的資料有關係
例如,
07樓A區6號的Label,就取名為Label07FA06
12樓C區22號的Lable,就取名為Lable12FC22
依此類推
修改一下您現在的td所拉出的座位表

2.從資料庫取出名單(多筆)
其中包含兩個資訊
座位,姓名
07FA06,chen
12FC22,John
....

3.迴圈取資料
並透過FindControl的方式,逐筆資料將姓名放入


大約是這樣的過程
不過先確定一件事
您的需求是否如同小喵的理解一樣呢?
您要做的,是從資料庫把相對的座位取出,然後把姓名放入,是這樣的需求,對嗎?
本篇文章回覆於2020-06-25 22:17
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
10樓
作者回應

Curtis
檢舉此回應
非常感謝各位老師們,版主們願意回覆我,我不太會表達要做的內容,也真的還有很多知識要學習,
就如同你們說的是這樣的理解與這樣的需求沒有錯,經過你們的描述與教學,也有些方向了,我明日會試試看FindControl的部分,真的很謝謝各位!!
本篇文章回覆於2020-06-28 23:25
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

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