如何將資料庫兩三個不同表之間的部分資料加載到一個datagridview顯示出來
uj5u.com熱心網友回復:
select a.*,b.*,c.* from xx a left join ss b on a.id=b.id left join yy c on b.id=c.id然后把dgv對應列的欄位標識改成對應資料庫欄位名即可
uj5u.com熱心網友回復:
連接查詢查出來,或者自己用幾個集合拼成一個uj5u.com熱心網友回復:
資料庫做個視圖或者查詢的時候用上 join
都可以在一次查詢中查到多個表的欄位到同一個datatable
不嫌麻煩的話,可以用代碼生成一個datatable,再通過多次查詢資料庫查到不同表的資料,再把資料填充進自己生成的datatable里面
uj5u.com熱心網友回復:
看一看兩三個表直接有沒有邏輯聯系 ,如果有邏輯聯系需要把這些表中的資訊都展示用左右外聯的形式,如果沒有聯系單存的結果集取合集用union 。1.有邏輯關系下面sql為oracle寫法
學生表 成績表
學生ID 學生姓名 學生ID 成績
0001 小明 0001 98
0002 小紅 0002 95
--這里學生表為主表
select * from 學生表,成績表 where 學生表.學生ID=成績表.學生ID(+)
2.無邏輯關系下面sql為oracle寫法
學生成績表 老師成績表
學生ID 學生姓名 成績 老師ID 老師姓名 成績
0001 小明 98 0001 張偉 100
select * from 學生成績表
union all
select * from 老師成績表
uj5u.com熱心網友回復:
謝謝朋友們謝謝啦uj5u.com熱心網友回復:
這個方法很簡單也蠻實用的謝謝大佬uj5u.com熱心網友回復:
我試試這個方法還沒嘗試過uj5u.com熱心網友回復:
這個太簡單了,三種方案:1、如果是沒有傳參條件的,
直接可以用Create View設計一個視圖集,再通過UI 來呼叫它,獲取到DataTable即可。
2、如果有傳參:
可以考慮用,存盤程序。
3、最直觀高效的方式,是采用ORM框架,比如EntityFramework。
直接在前端 寫DAL層,LINQ或Labmbda運算式來實作查詢邏輯。輸出到List<T>或IList<T>轉DataTable,都是非常方便的。
當然,還有一種傳統的三層方案,那就是在前端寫sql腳本,傳到資料訪問層執行進行輸出DataTable。這種方式曾經非常流行,但語法拼法較為復雜,可讀性差,而且容易引發sql注入式攻擊,越來越被人摒棄了。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/284962.html
標籤:C#
上一篇:嚴重性代碼說明專案檔案行禁止顯示狀態 錯誤“ResolveComReference”任務回傳了 false,但未記錄錯誤。DAL
