读书笔记 UltraGrid(9)

本文介绍了使用SqlDataAdapter填充数据的方法,包括如何不指定源表名,默认填充为Table,以及通过TableMapping属性设置源表和DataTable之间的映射关系,并创建表间的关系。

关于SqlDataAdapter填充数据
1. SqlDataAdapter da = new SqlDataAdapter("select * from customers", cnnstring);
da.Fill(data);
如果不指名源表名,则缺省为Table;
2.public int Fill(DataSet dataSet,string srcTable)用于表映射的源表的名称。
da.Fill(data,"客户");
指定原表名为"客户",填充后datatable的名称也为"客户",这点有点奇怪呢。
3.使用TableMapping
SqlDataAdapter da = new SqlDataAdapter("select * from customers", cnnstring);
da.TableMappings.Add("customers", "客户");
da.Fill(data, "customers");

da = new SqlDataAdapter("select * from pdctorders;", cnnstring);
da.TableMappings.Add("PdctOrders", "订单");
da.Fill(data, "PdctOrders");
         
da = new SqlDataAdapter("select * from SaleContracts", cnnstring);
da.TableMappings.Add("SaleContracts", "合同");
da.Fill(data, "SaleContracts");
这样指定了源表和datatable的对应关系,这样填充后相应的datatable表名分别为"客户"、"订单"和"合同"。
4.实际上有更简单的写法
SqlDataAdapter da = new SqlDataAdapter("select * from customers;select * from pdctorders;select * from SaleContracts;", cnnstring);
da.TableMappings.Add("Table", "客户");
da.TableMappings.Add("Table1", "订单");
da.TableMappings.Add("Table2", "合同");
da.Fill(data);
注意Table\Table1\Table2的写法
5:建立关系
DataRelation mydr = new DataRelation("Customers_PdctOrders", data.Tables["客户"].Columns["CustID"], data.Tables["订单"].Columns["CustID"], false);
data.Relations.Add(mydr);
DataRelation mydr2 = new DataRelation("Customers_SaleContracts", data.Tables["客户"].Columns["CustID"], data.Tables["合同"].Columns["CustID"], false);
data.Relations.Add(mydr2);
这样this.ultraGrid1.DataSource = data;
绑定数据后即可以层次关系体现了。

转载于:https://www.cnblogs.com/chump/archive/2012/02/11/2347254.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值