高手救命啊

雪狼1234567 2003-07-11 02:36:13
我想的做成如下的界面样子,左边是一颗树,右边的上边是一个主表的DataGrid,
右边的下边是一个从表的DataGrid,当我点左边的树时,右边主表能定位到相应的记录,我现在是在树结点的Tag里保存了主表的主键,如CustomerID,但是我如何能过滤出想要的记录呢?现在的问题是如果我把主表换成DataView,那么可以过滤,但是主表变化时从表不变,如果我按下面的代码把相关联起来,但是DataTable里没有rowsFilter="CustomerID=''"这样的过滤条件,
各位高手帮帮忙啊,
System.Data.SqlClient.SqlConnection conn = new System.Data.SqlClient.SqlConnection("server=localhost;database=northWind;uid=sa;password=194910");
conn.Open();
System.Data.SqlClient.SqlDataAdapter da = new System.Data.SqlClient.SqlDataAdapter("select * from customers",conn);
System.Data.DataSet dt = new System.Data.DataSet();
da.Fill(dt,"customers");
System.Data.SqlClient.SqlDataAdapter dad = new System.Data.SqlClient.SqlDataAdapter("select * from orders",conn);
dad.Fill(dt,"Orders");

DataColumn MasterCols = new System.Data.DataColumn();
DataColumn DetailCols = new System.Data.DataColumn();

MasterCols = dt.Tables[0].Columns["CustomerID"];
DetailCols = dt.Tables[1].Columns["CustomerID"];
try
{
DataRelation GoodManager = new System.Data.DataRelation("GoodManager",MasterCols,DetailCols,true);
dt.Relations.Add(GoodManager);
}
catch(Exception e)
{
MessageBox.Show("两表之间的关系无法建立");
}

this.dataGrid1.DataSource = dt;
this.dataGrid1.DataMember = "customers";
this.dataGrid2.DataSource = dt;
this.dataGrid2.DataMember = "customers.GoodManager";
...全文
51 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
covis 2003-07-12
  • 打赏
  • 举报
回复
就应该这样,每次传递参数,然后重新FILL,重新绑定。
rqxiang 2003-07-12
  • 打赏
  • 举报
回复
gx
雪狼1234567 2003-07-12
  • 打赏
  • 举报
回复
我已经找到方法啦,
每次取一条主记录,然后在树的的事件后把对应结点的值做参数传给SQL语句,然后就可以啦

110,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧