c#中dataset 数据查询问题

我把数据库中的记录全部读到dataset中然后再从dataset中选择符合条件的记录显示出来.举例(从数据库中读出所有的省份,城市放在dataset中然后从下拉列表中选择... 我把数据库中的记录全部读到dataset 中
然后再从dataset中选择符合条件的记录显示出来.
举例( 从数据库中读出所有的省份,城市放在dataset 中 然后从下拉列表中选择山东省dataGridView中显示出所有属于山东省的城市. )
展开
 我来答
郁闷_下
2009-05-16 · 超过17用户采纳过TA的回答
知道答主
回答量:33
采纳率:0%
帮助的人:0
展开全部
如果你的dataset中满足以下条件
1、省份和城市分别用两张表存放
2、省份表与城市表有主外键关系
我到是有个方法,如果不满足以上条件那我就不会了。

解决方案如下(在下不是什么高手型帆埋,只卜蚂能想到这么多了,满不满意你看看吧)

如果用省份来筛选城市的话,可以先给dataset中的两张表添加一个关系(Relation):
dataset.Relations.Add(new DataRelation("关系名",省份表中的主键列,城市表中的外键列))

添加了关系后就可以给下拉框添加SelectedIndexChanged事件处理程序了:
int index = 下拉框SelectedIndex;//下拉框选中省份的索引,如果你不能保证这个索引与表中该省份所在的行的索引相同的话,就请你自己再加点判断
DataRow[] rows = 省份表.Rows[index].GetChildRows("关系名");//根据下拉框的索引找出dataset中省份那一行,再根据那一行的主键获得城市表中的关联城市
DataTable dt = 城市表.Clone();//建一张新表,将城市表的结构克隆一份给新表
foreach (DataRow row in rows)//循环筛选出的城市
{
dt.ImportRow(row);//将数据复制给刚刚的新轿侍表
}
dataGridView.DataSource = dt;\\绑定新表
System.GC.Collect();\\强制进行垃圾回收,因为每次改变下拉框的选定项都会创建新表,所以要回收上一次创建的表。

如果你对上面的方法或属性有不了解的,请参阅《MSDN Library for Visual Studio 2008 简体中文》

参考资料: MSDN Library for Visual Studio 2008 简体中文

lboobl
2009-05-18 · TA获得超过115个赞
知道答主
回答量:157
采纳率:0%
帮助的人:101万
展开全部
1、用下拉框的SelectedIndexChanged事件

2、当你选择山东的时候把山东做为敏岁局关键字在数据库中查询一下

3、重新雀缺用dataGridView绑桥让定一下就可以了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
cx924098
2009-05-16 · TA获得超过172个赞
知道小有建树答主
回答量:225
采纳率:0%
帮助的人:220万
展开全部
你磨培所说的是控件联动。瞎源唯
我简单的跟你说下吧:
一张省份表和一张城市表(省份列(引用省份表外键)和城市列)
1.首先在下拉别表中加载dataset中的省份
2.然后根裂困据所选择的省份,查询其所有的城市,加载到dataset中。
应该很明白吧?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
maryyitian
2009-05-21
知道答主
回答量:28
采纳率:0%
帮助的人:0
展开全部
表结构要一张城市表,一张省份表,用ID连起来。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
邦德的二叔
2009-05-16 · TA获得超过956个赞
知道小有建树答主
回答量:1000
采纳率:0%
帮助的人:576万
展开全部
确实有点问题不清.
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 3条折叠回答
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式