标题:[讨论]关于表关联
取消只看楼主
jockey
Rank: 3Rank: 3
等 级:论坛游民
威 望:8
帖 子:977
专家分:52
注 册:2005-12-4
结帖率:33.33%
 问题点数:0 回复次数:2 
[讨论]关于表关联
表1: idark(ID),dm(代码),mc(名称)
表2: idark(ID与表1关联),托运日期,航线,分类,费用

点击左面DataGridView的客户名称,右面的DataGridView相应出现明细
请教各位老师,如何实现该功能?


搜索更多相关主题的帖子: 航线 DataGridView idark 客户 
2006-10-05 15:31
jockey
Rank: 3Rank: 3
等 级:论坛游民
威 望:8
帖 子:977
专家分:52
注 册:2005-12-4
得分:0 
谢谢版主!

是这样的:如果每次点击左面的客户名称DataGrid便进行一次连接SQL查询,我想那样的效率会大打折扣的。

我现在所用的方法是把这两个表的值全部取出来,分别生成了两个DataAdaptor后并进行了填充,当点击左面的客户名称DataGrid时,右面的明细DataGrid会自动过滤出 ID相同的纪录,并显示出来,而不是进行一次SQL连接查询。这段代码怎么写?谢谢了!

2006-10-09 14:58
jockey
Rank: 3Rank: 3
等 级:论坛游民
威 望:8
帖 子:977
专家分:52
注 册:2005-12-4
得分:0 

大家帮我看看啊:

我在点击DataGridView时用SelectionChanged事件调用MakeDataView():
private void dataGridView1_SelectionChanged(object sender, EventArgs e)
{
MakeDataView();
}

private void MakeDataView()
{
DataView dv = new DataView();
dv.Table = ds.Tables["ckd"];
dv.AllowDelete = true;
dv.AllowEdit = true;
dv.AllowNew = true;
dv.RowFilter = "ID='"+this.dataGridView2.CurrentCell.Value.ToString()+"'";
dv.RowStateFilter = DataViewRowState.ModifiedCurrent;
dv.Sort = "计费日期 DESC";
this.dataGridView1.DataSource = dv;
}

其中DataView有个RowFilter过滤功能,但是运行程序时dv好像没取到值,DataGridView2没有显示任何东东...
另外:在点击左面的DataGridView时,必须要点在ID列上,否则会出错的。因为这句话: dv.RowFilter = "ID='"+this.dataGridView2.CurrentCell.Value.ToString()+"'";
大家请帮忙看看啊!谢谢!


2006-10-10 10:07



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-94341-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.157941 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved