c#中dataset 数据查询问题

2024-10-31 12:13:29
推荐回答(5个)
回答(1):

如果你的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 简体中文》

回答(2):

1、用下拉框的SelectedIndexChanged事件

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

3、重新用dataGridView绑定一下就可以了

回答(3):

你所说的是控件联动。
我简单的跟你说下吧:
一张省份表和一张城市表(省份列(引用省份表外键)和城市列)
1.首先在下拉别表中加载dataset中的省份
2.然后根据所选择的省份,查询其所有的城市,加载到dataset中。
应该很明白吧?

回答(4):

表结构要一张城市表,一张省份表,用ID连起来。

回答(5):

确实有点问题不清.