CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  C#

程序写到这里就写不下去了,请大家帮忙!

楼主nanhe0065(静中念虑澄澈,见心之本体)2002-12-01 11:47:20 在 .NET技术 / C# 提问

这是一个母子表之间浏览的问题:  
  二个listBox,点击左边listBox的项,右边listBox显示相应子表的内容。  
  母表:tbParent  
  ============  
  字段:  
  parentID   int   identity  
  name   nchar(4)  
  子表:tbChild  
  ============  
  字段:  
  childID   int   identity  
  parentID   int  
  childName   nchar(4)  
   
  c#:  
  private   SqlConnection   myConn;  
  private   SqlCommand   cmdParent;  
  private   SqlCommand   cmdChild;  
  private   SqlDataAdapter   daParent;  
  private   SqlDataAdapter   daChild;  
  private   DataSet   myDataSet;  
  private   SqlCommandBuilder   cbParent;  
  private   SqlCommandBuilder   cbChild;  
  private   DataRelation   rel;  
  private   DataColumn   colParent;  
  private   DataColumn   colChild;  
  private   System.Windows.Forms.ListBox   lbParent;  
  private   System.Windows.Forms.ListBox   lbChild;  
   
  //初始化  
  myConn   =   new   SqlConnection("server=namhyuk;database=simple;uid=sa;pwd=password");  
  myConn.Open();  
   
  cmdParent   =   new   SqlCommand("select   *   from   tbParent",   myConn);  
  cmdChild   =   new   SqlCommand("select   *   from   tbChild",   myConn);  
   
  daParent   =   new   SqlDataAdapter(cmdParent);  
  daChild   =   new   SqlDataAdapter(cmdChild);  
   
  cbParent   =   new   SqlCommandBuilder(daParent);  
  cbChild   =   new   SqlCommandBuilder(daChild);  
   
  myDataSet   =   new   DataSet();  
   
  daParent.Fill(myDataSet,   "tbParent");  
  daChild.Fill(myDataSet,   "tbChild");  
   
  myDataSet.Tables["tbParent"].PrimaryKey   =   new   DataColumn[]   {   colParent   };  
  myDataSet.Tables["tbChild"].PrimaryKey   =   new   DataColumn[]   {   myDataSet.Tables["tbChild"].Columns["childID"]   };  
   
  colParent.AutoIncrement   =   true;  
  colParent.AutoIncrementSeed   =   0;  
  colParent.AutoIncrementStep   =   -1;  
   
  DataColumn   c   =   myDataSet.Tables["tbChild"].Columns["childID"];  
  c.AutoIncrement   =   true;  
  c.AutoIncrementSeed   =   0;  
  c.AutoIncrementStep   =   -1;  
   
  colParent   =   myDataSet.Tables["tbParent"].Columns["parentID"];  
  colChild   =   myDataSet.Tables["tbChild"].Columns["parentID"];  
   
  rel   =   new   DataRelation("RelName",colParent,   colChild);  
  myDataSet.Relations.Add(rel);  
   
   
  dvParent   =   new   DataView(myDataSet.Tables["tbParent"]);  
  dvParent.Sort   =   "name";  
   
  lbParent.DataSource   =   dvParent;  
  lbParent.DisplayMember   =   "name";  
  lbParent.ValueMember   =   "parentID";  
   
  ................  
  如果想实现左边listBox显示tbParent的name字段,当点击相应项时右边listBox里显示子表tbChild的childName字段内容,这时应该怎样进行控件的数据绑定,还是得用别的什么方法实现?  
  问题点数:0、回复次数:4Top

1 楼saucer(思归)回复于 2002-12-01 12:03:59 得分 0

something   like  
   
  lbChild.DataSource   =   ((DataRowView)lbParent.SelectedItem).Row.GetChildRows("RelName");  
  lbChild.DisplayMember   =   "childName";Top

2 楼Elsa_Fent(宪兵队)回复于 2002-12-01 12:18:32 得分 0

同上Top

3 楼nanhe0065(静中念虑澄澈,见心之本体)回复于 2002-12-01 12:52:15 得分 0

不行。  
  lbParent_SelectedIndexChanged事件处理代码中  
  lbChild.Items.Clear();  
  foreach(DataRow   r   in   ((DataRowView)lbParent.SelectedItem).Row.GetChildRows("RelName"))  
        lbChild.Items.Add(r["childName"]);  
  这样子倒是可以正确显示,不过这样子就不是控件数据绑定了。  
  GetChildRows返回的是DataRow的数组吧?Top

4 楼nanhe0065(静中念虑澄澈,见心之本体)回复于 2002-12-01 13:20:13 得分 0

或者在lbParent_SelectedIndexChanged事件处理代码中  
  lbChild.DataSource   =   ((DataRowView)lbParent.SelectedItem).CreateChildView("RelName");  
  lbChild.DisplayMember   =   "childName";  
  lbChild.ValueMember   =   "childID";  
  也可以正确显示,   不过有没有更好的方案?也就是像通常的数据绑定那样,不用在控件的事件处理代码中增加这样东东?Top

相关问题

  • 我这里有一段c++程序 用Delphi怎么写有关GUID 请指点
  • 请问c++程序和api写的c程序如何共存?
  • 程序改写
  • 写个Dos驻留程序的请进。。。。。。。
  • 请教:怎样写SDK的程序?
  • 请问,谁会写这样的程序
  • 请人写程序!!!!有利可图的!!!!
  • 请问打印程序如何编写?
  • 请帮忙写个小程序
  • 请问这个程序怎么写?

关键词

  • 代码
  • lbchild
  • lbparent
  • cmdchild
  • childname
  • cmdparent
  • relname
  • myconn
  • getchildrows
  • listbox

得分解答快速导航

  • 帖主:nanhe0065

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo