在winform下,我建了一个强类型dataset绑定Listbox,代码如下:SqlConnection MyConnection=new SqlConnection(constr) ;
MyConnection.open();                                  
adp = new SqlDataAdapter("select paraID from paraleft",MyConnection );
//建立强名dataset的实例
DSleft ds=new DSleft ();
//填充 
adp.Fill (ds,"paraleft");
ddl.DataSource =ds;
ddl.DisplayMember ="paraID" ;
ddl.ValueMember ="paraID" ;但是运行后总是报这个错: 无法绑定到新的显示成员. 参数名:newDisplayMenber.这是为什么?
我有几个疑问:
1:DSleft是我拖入paraleft这个表到一个类库的组件设计器里生成的(这应该算是建立了一个强型dataset吧?),但我这种绑定的代码算不算强类型dataset绑定,我的代码是写在这个类库里的一个公用类里的.
2: 为什么我如上代码运行后会报错?请大家帮帮忙啊! 急救!!!

解决方案 »

  1.   

    补充一下 :上文中 ddl是这个listbox的ID
      

  2.   

    ddl.DataSource =ds.Tables["paraleft"];
      

  3.   

    楼上的方法不行啊,得到的listbox的数据是空的呀
      

  4.   

    ddl.DataSource =ds;?????要具体绑定到一个表啊!
    举例说:如果你的DataSet中有多个表,而且每个表也有相同的字段名,那到底显示哪一个?
      

  5.   

    把ddl.DataSource=ds.tables["paraleft"]放在最后面!
      

  6.   

    DSleft ds=new DSleft ();
    这句我也觉得有问题,你拖入一个DataSet到窗体中了,不需要实例化了吧?
      

  7.   

    kingdhy(飞鹰)
    我的dateset已经是强类型绑定的了~~~~~~~~~,就是对应的一张表
      

  8.   

    为什么要用强类型,直接用DataSet不就行了。
      

  9.   

    怎么不行呢?
    this.sqlDataAdapter1.Fill(this.dataset11,"a");
    我就写了一句话就可以了
    可以显示啊
    我用了四个空间
    SqlDataAdapter,SqlConnection ,SqlCommand,dataset
    分别设置相关属性
    其中dataset把表导入
    设置一下 listbox中的数据源,DisplayMember,ValueMemeber
    运行一下就可以了
      

  10.   

    刚才想起来你所谓的强类型
    我是这样产生的:
    在解决问题方案中选择右键添加数据集
    将服务器资源中的表拖入数据集中
    此时就已经生成了强类型
    你可以使用这样的字段:
    using dataset11.a.NewaRow......
    对这样的一种结构进行操作,他已经将列绑定了,生成了强类型
    我用过这个东西,所以想起来告诉你,具体挺难说清楚的
    有问题请联系[email protected]吧                                       桂林电子工业学院计算机系 
                                              信息管理与信息系统
                                               2006.3.29
      

  11.   

    谢谢liusujian02, 搞定了,代码如下:// DSleft是我拖拽到数据集派生出来的一个DSleft.xsdpublic void  StrongDS_win(System.Windows .Forms .ListBox ddl)
    {
    this.Open ();     //打开数据库连接
    adp = new SqlDataAdapter("select paraID from paraleft",MyConnection );
    DSleft ds=new DSleft ();     //建立强类型DATASET的实例
    adp.Fill (ds,"paraleft" );   //paraleft是数据源的表
    ddl.DataSource =ds.paraLeft ;
    ddl.DisplayMember = ds.paraLeft.paraIDColumn.ToString () ; //paraIDColumn,paraID是列
    ddl.ValueMember =ds.paraLeft.paraIDColumn .ToString ()  ; 
    this.Close();
    }
    我的listbox就是调用这个公用类里的这个方法,来实现绑定!最后确定一个疑问:  这是属于强类型的绑定吧??????  (不好意思,我这是为别人做一个范例,千万不能把概念搞错了)一会结帖!!!