




下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、如果要顯示兩張數據庫表的記錄,最簡單的方法是檢索時將兩張表中你要的數據一次檢索 出來,放入同一個DataTable來顯示。如果要顯示兩個以上DataTable中的數據,則需要將DataTable放入DataSet并建立relation 就可以顯示了。下面是剛做的一個例子。另外,父表一定要有主鍵。建立關聯時要用主鍵。private void button1_Click(object sender, System.EventArgs e)DataTable dtName = new DataTable(NameDt);dtName.Columns.Add(ID”, typeof(string);d
2、tName.Columns.Add(Name”, typeof(string);dtName.PrimaryKey = new DataColumn dtName.ColumnsID ;dtName.Rows.Add(1, Name1);DataTable dtAddress = new DataTable(AddressDt);dtAddress.Columns.Add(ID”, typeof(string);dtAddress.Columns.Add(Address”, typeof(string);dtAddress.Rows.Add(1, Address1);dtAddress.Row
3、s.Add(1, Address2);DataSet ds = new DataSet();ds.Tables.Add(dtName);ds.Tables.Add(dtAddress);/關鍵!建立表之間的關聯ds.Relations.Add(ForName, dtName.ColumnsID, dtAddress.ColumnsID);/在子表中添加計算列,引用父表的數據。dtAddress.Columns.Add(Name”, typeof(string), Parent(ForName).Name);dataGridView1.AutoGenerateColumns = false;da
4、taGridView1.DataSource = ds;dataGridView1.DataMember = AddressDt;DataSet多表關聯實現本地數據復雜的查詢c-sharp view plaincopyDataSet ds = new DataSet();2./提取第一個表放在ds中dp.CommandText = SELECT * FROM ss_RolesInAction;ds.Tables.Add(dp.ExecuteDataTable(ss_RolesInAction);6./提取第二個表放在ds中dp.CommandText = SELECT * FROM ss_Ac
5、tion;ds.Tables.Add(dp.ExecuteDataTable(ss_Action);10./提取第三個表放在ds中dp.CommandText = SELECT * FROM as_SiteMap;ds.Tables.Add(dp.ExecuteDataTable(as_SiteMap);14.建立關系 ss_Action.FID = ss_RolesInAction.FActionID , ss_RolesInAction.FActionID 為外鍵ds.Relations.Add(relation1, ds.Tables1.ColumnsFID, ds.Ta bles0.C
6、olumnsFActionID);建立關系 as_SiteMap.ID = ss_RolesInAction.FNodeID , ss_RolesInAction.FNodeID 為外鍵ds.Relations.Add(relation2, ds.Tables2.ColumnsID, ds.Tab les0.ColumnsFNodeID);19.20./查詢條件測試1:對父表查詢獲取子表測試/條件為 ss_Action.FID 等于 6E7BB6B5-4DDA-4BB9-A156-71288CEF16B2 的或是 ss_RolesInAction.FActionID 等 于 DB893F4E-
7、B411-4FC0-9735-D5E9B7823083 或是 as_SiteMap.id 等于 7 的/因為已經建立三個表的關系,所以,無論查詢條件是什么都會跟上關系中的 條件即:/ss_Action.FID = ss_RolesInAction.FActionID AND as_SiteMap.ID = ss_RolesInAction.FNodeID/當我們指定的查詢條件為空時會根據關聯關系查詢以下條件中的完整關聯 關系是這樣的/(ss_Action.FID = ss_RolesInAction.FActionID AND as_SiteMap.ID =ss_RolesInAction.F
8、NodeID ) and ss_Action.FID=6E7BB6B5-4DDA-4BB9-A156-7128 8CEF16B2 or ss_RolesInAction.FActionID= DB893F4E-B411-4FC0-9735-D5E9B78230 83 or as_SiteMap.id=7DataView dv = ds.Tables0.DefaultView;dv.RowFilter = parent(relation1).FID=6E7BB6B5-4DDA-4BB9-A156-7 1288CEF16B2 or FActionID= DB893F4E-B411-4FC0-973
9、5-D5E9B7823083 or parent( relation2).id=7;29./查詢條件測試2:對子表查詢獲取父表測試/因為子表與父表是多對一的關系所以我們對子表查詢時會返回多個值所 以使用MAX函數DataView dv = ds.Tables1.DefaultView;dv.RowFilter = max(child(relation1).FActionID) in (FFD953C4-09 20-4558-B87F-3A25CFB15754,FC5C91F5-45ED-4B3E-8E14-C2391B9A6B14) ;/這個查 詢條件中無法關聯as_SiteMap查詢條件因為
10、沒有查詢表as_SiteMap和返回表ss_Action的條件34.this.GridView1.DataSource = dv;this.GridView1.DataBind();在Winform中將數據庫中的多張表同時顯示在多個DataGridView中的方法2009-08-28 12:11:05|分類:C#|舉報|字號訂閱方法一:使用SqlDataAdapter向DataGridView添加數據時,可以在其參數中添加多條SQL語句,查詢出的結果分別保存在多個DataSet中,在為多個DataGridView指定數據源時,將DataSet中的多張 表依次賦給每個DataGridVie即可。
11、關鍵代碼:private void Form1_Load(object sender, EventArgs e)using (SqlDataAdapter da = new SqlDataAdapter(select * fromProduct;select * from Product,DBService.Conn)DataSet ds = new DataSet();da.Fill(ds);this.dataGridViewl.DataSource = ds.Tables0;this.dataGridView2.DataSource = ds.Tables1;方法二在使用SqlDataReader向DataGridView添加數據時,也是在其參數中添加多條SQL語句,但不同的是,在為DataGridView指定數據源時,可以利用DataReader對象的Read()和NextResult()方法,并且以for循環的方式來顯示在多個DataGridView中;關鍵代碼:private void button1_Click(object sender, EventArgs e)using (SqlCommand cmd = new SqlCommand(select * from jobs;select * from sale
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 路燈節能改造工程實施方案(參考范文)
- 2023國培個人研修計劃
- 《感恩父母》演講稿(15篇)
- 科技企業孵化器建設可行性研究報告(范文參考)
- 教育營養配餐項目規劃設計方案
- 航空航天裝備研發項目可行性研究報告(參考范文)
- 工業遺產活化利用項目實施方案(范文參考)
- 大班安全教育防火知多少
- 新疆維吾爾自治區烏魯木齊市第97中學(金英外國語學校)2022-2023學年高一上學期期中政治含解析
- 江蘇省徐州市銅山區2023-2024學年高一上學期期中考試物理含解析
- 山東省臨沂市2025年普通高等學校招生全國統一考試(模擬)語文及答案(臨沂二模)
- 定額〔2025〕1號文-關于發布2018版電力建設工程概預算定額2024年度價格水平調整的通知
- 宮頸癌護理查房-4
- 《云南省建筑工程資料管理規程應用指南)(上下冊)
- 上海建設工程通用硅酸鹽水泥質量檢驗報告 - 上海水泥行業協會
- NY T 1145-2006 溫室地基基礎設計丶施工與驗收技術規范
- 餐飲服務六大技能培訓.ppt
- 基于單片機的電話撥號系統的設計畢業論文
- 叉車產品數據表
- 高填方、深挖路塹邊坡和軟基監測方案
- 機器人學導論(課堂PPT)
評論
0/150
提交評論