国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > 綜合 > 正文

關(guān)于c#中兩個(gè)DataGrid綁定到主表和子表的數(shù)據(jù)同步問題

2024-07-21 02:18:26
字體:
供稿:網(wǎng)友
在數(shù)據(jù)庫編程中,我們常常要將主表和子表分別綁定到兩個(gè)datagrid,同時(shí)還有一些textbox之類的
控件要顯示相應(yīng)datagrid中的數(shù)據(jù),這時(shí)候數(shù)據(jù)的同步就成了一個(gè)問題。這個(gè)問題的解決方法就是
使用bindingmanagerbase來管理數(shù)據(jù)了。在dataset中的兩個(gè)表之間添加關(guān)系
private void createrelation(dataset ds,string relationname,string mastertablename,string slavetablename,string columnname)//
{
ds.tables[mastertablename].childrelations.add(relationname,ds.tables
mastertablename].columns [columnname],ds.tables[slavetablename].columns[columnname]);
}
這樣就給主表mastertable添加了一個(gè)子關(guān)系(childrelation)。
建立兩個(gè)bindingmanagerbase:
bindingmanagerbase bmmaster=mastergrid.bindingcontext[ds,”mastertablename”];
bindingmanagerbase bmslave=
slavegrid.bindingcontext[ds,”mastertablename.relationname”];
建立好bindingmanagerbase之后,指定datagrid的datasource(最好是用setdatabinding來進(jìn)行綁定,指明datamember。如果你用datagrid.datasource=ds.tables[”tablename”]的話,對(duì)于子表對(duì)應(yīng)的bindingmanagerbase就起不了作用了,我也不知道是什么原因。應(yīng)該是slavegrid.bindingcontext[ds,”mastertablename.relationname”]的問題吧)
mastergrid.setdatabinding(ds,”mastertablename”);
slavegrid.setdatabinding(ds,”slavetablename”);
這時(shí)候mastergrid跟slavegrid已經(jīng)對(duì)應(yīng)起來了。
再綁定slavegrid對(duì)應(yīng)的textbox(比如說對(duì)應(yīng)于name列)
textboxname.databindings.add(”text”,ds,”mastertablename.relationname.name”);
注意帶下劃線的部分,不是用add(”text”,ds.tables[slavetablename],”name”)
也就是說,建立databindingmanager,綁定數(shù)據(jù)到dataset及textbox時(shí)都是以相應(yīng)的relation作為datamember的,而不是用只指定datasource的方法來進(jìn)行的。


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 鄂托克前旗| 延寿县| 平和县| 鸡东县| 秦安县| 东乡族自治县| 兴业县| 丰原市| 宁夏| 邯郸县| 分宜县| 江门市| 红安县| 九江市| 长岭县| 阿巴嘎旗| 吕梁市| 买车| 加查县| 仪陇县| 韶山市| 翼城县| 东安县| 四川省| 闵行区| 万州区| 伽师县| 长春市| 方正县| 临武县| 藁城市| 贵港市| 敦化市| 中方县| 砀山县| 濮阳市| 儋州市| 梁河县| 萨迦县| 巴里| 远安县|