台灣最大程式設計社群網站
線上人數
2172
 
會員總數:246497
討論主題:190004
歡迎您免費加入會員
討論區列表 >> C# >> 請問如何共用 DataGridView
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
請問如何共用 DataGridView
價值 : 50 QP  點閱數:447 回應數:8
樓主

leon
初學者
125 40
870 78
發送站內信

假設有Form1.cs、Class1.cs、Class2.cs
在Form1 中放了一個DataGridView 元件,
請問如何在Class1.cs 撈取到的資料與 Class2.cs 撈取到的資料
全部塞進Form1.cs DataGridView 呈現?

搜尋相關Tags的文章: [ DataGridView ] ,
本篇文章發表於2021-05-31 16:26
1樓
回應

MIS2000 Lab
檢舉此回應
就像資料庫裡面的「兩個資料表」
把他們 Join起來,就能把結果合併了
本篇文章回覆於2021-06-01 08:44
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
作者回應

leon
檢舉此回應
請問大大
Join 之後該如何把資料傳遞到 Form1 中的 DataGridView 上呢?
本篇文章回覆於2021-06-01 21:42
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
回應

MIS2000 Lab
檢舉此回應
您要設計一個 ViewModel
他的內容(屬性)包含了 Class1.cs、Class2.cs兩者

然後把數據放進這個新的 Class,再丟給 DataGridView 即可
(我的說法可能不太準確,因為我是用了一些網頁程式的名詞)

不過,這兩個類別他們彼此之間應該有關連吧?
本篇文章回覆於2021-06-02 08:08
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
作者回應

leon
檢舉此回應
Class1.cs Class2.cs 之間沒有關聯

-----------------------------------------------------
然後把數據放進這個新的 Class,再丟給 DataGridView 即可

恩.....小弟是知道方向是這樣
只是"丟" 的樣子與程式會是長怎樣的呢?

比較白話一點來說應該是我不知道要怎麼丟
本篇文章回覆於2021-06-04 10:50
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
回應

MIS2000 Lab
檢舉此回應
Q : Class1.cs Class2.cs 之間沒有關聯

如果沒有關連,那麼把他們合併在一起做什麼?

把你的資料丟給 DataGridView
不就是 DataBinding的意思嗎?

您好像沒有資料庫 join的觀念
也沒有 DataBinding的觀念,是嗎?
本篇文章回覆於2021-06-07 07:48
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
作者回應

leon
檢舉此回應
謝謝老師的提醒
或許老師誤會學生的意思

DataGridView 不會去讀sql

Class1.cs Class2.cs 沒有關聯的意思是

Class1.cs 可能去抓天氣可能去數值可能去抓地區可能去讀文件
Class2.cs 可能去又去爬或讀另外一種資料
他們之間自然不會有關聯也不會是同時觸發

這不寫資料庫所以沒有關聯是很合理的

雖然我本身沒有再寫asp 不太清楚 databinding
但老師提到這個名詞
學生馬上查資料

學生本身在寫laravel 搭配查到databinding資料
才發現老師誤會意思了

老師想複雜了

學生一開始也說得太籠統了

不好意思

學生重新整理一下

有一個Form1.cs 裡面有放一個DataGridView
還有兩個類別分別為Class1.cs 與 Class2.cs
這兩個類別觸發時間點沒有一定
是看使用者去點擊button1(Class1.cs) 或button2(Class2.cs) 才會觸發事件
但是在觸發事件的時候不可以讓Form1.cs exe 無回應
因此需要建立新線呈或是背景處裡去跑Class1.cs 或 Class2.cs
現在學生遇到的問題是Class1.cs 或 Class2.cs的資料已經獲取了

那如何把新線程或是背景處裡的Class1.cs 或 Class2.cs放到Form1.cs exe 這個線程上
本篇文章回覆於2021-06-07 13:56
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
7樓
回應

Amigo
檢舉此回應
有一個Form1.cs 裡面有放一個DataGridView
還有兩個類別分別為Class1.cs 與 Class2.cs
這兩個類別觸發時間點沒有一定
是看使用者去點擊button1(Class1.cs) 或button2(Class2.cs) 才會觸發事件
但是在觸發事件的時候不可以讓Form1.cs exe 無回應
因此需要建立新線呈或是背景處裡去跑Class1.cs 或 Class2.cs
現在學生遇到的問題是Class1.cs 或 Class2.cs的資料已經獲取了

那如何把新線程或是背景處裡的Class1.cs 或 Class2.cs放到Form1.cs exe 這個線程上


請問你這個是在寫WinForm還是Web?Web太久沒寫忘了,但和WinForm應該差不多,
不就是在Form1.cs上直接調用Class1.cs 或 Class2.cs上的功能抓數據放到DATATABLE中再給dataGridView的DataSource

而如果要把Class1.cs 和 Class2.cs數據合起來也不難,網上很多參考
本篇文章回覆於2021-06-08 16:29
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
8樓
回應

MIS2000 Lab
檢舉此回應
您打算任何結合、合併兩個「不相關」的資料來源
只能自己動手慢慢拼湊了,不需詢問別人的意見,
因為別人也不知道如何幫你(兩個資料來源,彼此無關連啊,只有你自己懂、自己能處理了 :-) )


.NET的 databinding,資料繫結、數據綁定(中國用語)
以Web Form / Windows Form來說,就是你把「資料來源」與「控制項(例如DataGridView )」結合在一起
讓DataGridView 把數據展示出來、呈現到UI畫面上。


偷偷問一下,您說的「看使用者去點擊button1(Class1.cs) 或button2(Class2.cs) 才會觸發事件」
這件事您會做了嗎?

這應該是最基本的
有買書的話,這應該是最前面的入門章節就會提及

一步一步來吧
本篇文章回覆於2021-06-10 17:52
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

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