请教各位老大   在Oracle数据库中有一个表 我要把此表中的 ID和Name列  添加到Listbox 中 如格式(ID,Name)而我现在在Listbox中显示的所有行都是表中的第一行。。请教各位老大 我要怎么写此段代码?

解决方案 »

  1.   

    while(dr.read())
    {
        this.listbox1.items.add(dr["ID"].tostring()+" "+dr["Name"].tostring());
    }
    应该是这样吧 没测试过 要把两个列并在一行写应该
      

  2.   

     你获取数据时候, 存放到一个DataTable了吧?
    Listbox.Item.Clear();
     foreach(DataRow dr in dt.Rows)
    {
       ListItem li=new ListItem();
       li.Text=dr["Name"].ToString();
       li.Value=dr["ID"].ToString();
       Listbox.Item.Add(li);
    }
      

  3.   

    你获取数据时候, 存放到一个DataTable了吧? 
    Listbox.Item.Clear(); 
    foreach(DataRow dr in dt.Rows) 

      ListItem li=new ListItem(); 
      li.Text=dr["Name"].ToString(); 
      li.Value=dr["ID"].ToString(); 
      Listbox.Item.Add(li); 
    }
    正解!
      

  4.   


    在Listbox中 是没有排序的啊。。
      

  5.   

    楼上说的基本都可以实现 。 很简单 ,你将你需要的数据查询出来已 datatable的形式返回,在通过 循环 ,给
    Listbox填加元素就可以了啊 。我知道你 的需求是什么。你是想给用户选的时候看到的 Name,当选中后 ,你得到他 对应的ID。其实 上面的仁兄也给出了解决方案 。foreach(DataRow dr in dt.Rows)
    {
      ListItem li=new ListItem();
      li.Text=dr["Name"].ToString();
      li.Value=dr["ID"].ToString();
      Listbox.Item.Add(li);
    }你取值的时候 , li.Text 就是 Name ,li.Value就是 ID。至于排序,你可能需要在 返回数据之前进行了 。 
    还有个 更笨的方法 ,如果数据不多,你可以 不用循环 添加 ,
    直接一行一行的 添加 ,按照你想要的顺序 取 不同的 tabla列就可以 实现了 
     
      

  6.   

    // 将你取得数据集放到datatable
    DataTable dt= ......
    // 设置table 的dataview
    DataView dv = dt.DefaultView;
    // 按照 "列名 升降序"的格式排序
    dv.Sort = "id desc";
    // 直接绑定数据源
    this.listBox1.DataSource = dv;
    this.listBox1.DisplayMember = "name";
    this.listBox1.ValueMember = "id";
      

  7.   

    这样的话 应该只是以字符串来排列的 <10  可以这样  但是>10的话 就会 1,10,11,2,3.....的这样排我是直接select * from TableArea order by ID asc。 读数据库是排的 就是这个问题 
    请教各位 老大 有没有 直接以数字的形式排序 而不是以字符的形式排的?
      

  8.   

    你的id 是字符型的 ,还是int型的select * from TableArea order by convert(int,ID) asc
      

  9.   


    我的ID是 字符型的  是1 30  等等
    select * from TableArea order byconvert(int,ID) asc 貌似不行吧?
      

  10.   

    我遇到过这种问题,Order by字段是varchar且长度不相同时出现这种错误!
      

  11.   


    数据能正常在listbox中显示出来 但是排序是按 string的格式排序的。比如说 1,哈哈哈哈
           10,哈哈哈
           11,哈哈哈
           12,哈哈
           2,哈哈哈
           。
           。
           。
           
      

  12.   

    #$%#$%#$%#$%^#$
    select * from TableArea order by convert(int,ID) asc 
      

  13.   


    大哥  确实不行   “int” 标识符无效
      

  14.   

    DataSet ds=new DataSet();
    using(OracleDataAdapter adp=new OracleDataAdapter())
    {
    adp.fill(ds);
    }
    ListBox1.DisplayMember="name";
    ListBox2.ValueMember="id";
    ListBox2.DataSource=ds.table[0];winform这么行的