本人在asp.net中使用C#编写一个dropdownlist控件,使其显示数据库表中的某个字段。源码如下:
public void Page_Load(Object sender, EventArgs e) 
{
  string strSel = "select * from discipline";
 DataSet ds = new DataSet();
 
 SqlConnection MyConn = new SqlConnection(strConn);
 
 SqlDataAdapter MyAdapter = new SqlDataAdapter(strSel,MyConn);
 MyAdapter.Fill(ds,"discipline");
 
  this.dDiscipline.DataSource= ds.Tables["discipline"].DefaultView; this.dDiscipline.DataTextField="disciplineName";
this.dDiscipline.DataValueField="disciplineID";
 
 this.dDiscipline.DataBind();
 }
..........................................................<asp:DropDownList Runat="server" ID="dDiscipline" ></asp:DropDownList>
程序没报错,但是dropdownlist控件中并没显示disciplineName字段的值,这是什么原因呢?请高手指点一下,多谢!!

解决方案 »

  1.   

    string strSel = "select * from discipline";
    SqlCommand cmd = new SqlCommand(strSel,con);
    SqlDataReader dr=cmd.ExecuteReader();
    //普通dropdownlist绑定
    dDiscipline.DataTextField="disciplineName";
    dDiscipline.DataValueField="disciplineID";
    dDiscipline.DataSource=dr;
    dDiscipline.DataBind();
      

  2.   

    1.确定你的表里是不是有值。
    2.这样试试。
    dDiscipline.DataSource= ds;
      

  3.   

    this.dDiscipline.DataSource= ds;-----------------------------------
    这句本来就有 拷贝的时候拷漏了
    我数据库表里也有值 有10个值
      

  4.   

    按照分头诗人的写法,这里用datareader的效率要比dataset高一些
      

  5.   

    string strSel = "select disciplineName,disciplineID from discipline";
      

  6.   

    回复人: goody9807() ( ) 信誉:100  2005-10-20 09:25:00  得分: 0  
     
     
       数据库中有数据吗
    ------------------------------------
    数据库中要数据,有10个
      
     
      

  7.   

    我刚刚试了,把this.dDiscipline.DataSource= ds.Tables["discipline"].DefaultView;换成this.dDiscipline.DataSource= ds;就ok了
      

  8.   

    這樣試一下: 
    if(!IsPostBack)
    {
    string strSel = "select * from discipline";
     DataSet ds = new DataSet();
     
     SqlConnection MyConn = new SqlConnection(strConn);
     
     SqlDataAdapter MyAdapter = new SqlDataAdapter(strSel,MyConn);
     MyAdapter.Fill(ds);
     
      this.dDiscipline.DataSource= ds.Tables[0]; this.dDiscipline.DataTextField="disciplineName";
    this.dDiscipline.DataValueField="disciplineID";
     this.dDiscipline.DataBind();
    }
      

  9.   

    大家的方法我都试过了 dropdownlist控件就是没有内容,请大家想一下还有什么原因呢?
    我的数据库表中disciplineName是varchar类型的 disciplinID是int类型的 以前都是char类型的 后来改的
      

  10.   

    你试下用while循环来读!~
      

  11.   

    For I = 0 to dDiscipline.Items.Count - 1
          dDiscipline.Items(I).Text = ds.Tables["discipline"].Rows(I).Item("disciplineName")
          dDiscipline.Items(I).Value = ds.Tables["discipline"]..Rows(I).Item("disciplineID")
     Next
    这个是vb版的你在改改吧,应该可以的
      

  12.   

    楼主的代码应该没有问题,
    检查一下
    private void InitializeComponent()
    {    
      this.Load += new System.EventHandler(this.Page_Load);  //看看有没有少这行,没有就加}
      

  13.   

    dropdownlist控件里的主键是否设置了???
    我也遇到过相同问题
    检查datakeysfield属性
    在属性页或html页看看
      

  14.   

    回复人: feiren1421(非人) ( ) 信誉:100  2005-10-20 17:12:00  得分: 0  
     
     
       dropdownlist控件里的主键是否设置了???
    我也遇到过相同问题
    检查datakeysfield属性
    在属性页或html页看看
    --------------
    我怎么在属性页或者html页都没查到有datakeyfield属性啊?
    请问该怎么设置啊?
      
     
      

  15.   

    在html页面里,要自己添加属性,在dropdownlist里面
    同样属性页里也能看到
    只要设置已经存在的字段即可
    由于我是在网吧上的,没能细说