我在datalist中想绑定database中的一个字段到dropdownlist中.可是IE确提示出现问题:
Object reference not set to an instance of an object. 
我的代码为:
private void dlItemView_ItemDataBound(object sender, System.Web.UI.WebControls.DataListItemEventArgs e)
{
              OleDbConnection myConn = new OleDbConnection(ConfigurationSettings.AppSettings["ConnectionString"]);
myConn.Open();
OleDbDataAdapter sad=new OleDbDataAdapter();
sad.SelectCommand=new OleDbCommand("select PENAME from People",myConn);
DataSet tt=new DataSet();
sad.Fill(tt,"emp");
    DropDownList d1 =(DropDownList)e.Item.FindControl("ddlOwn");
d1.DataSource = tt.Tables["emp"];
d1.DataTextField = "PENAME"; 
d1.DataValueField = "PENAME"; 
d1.DataBind(); 
}
哪位高手能帮我看看是什么原因吗?

解决方案 »

  1.   

    把你前端aspx里的代码帖出来.
      

  2.   

    foreach (GridViewRow myrow in GridView1.Rows)
                {
                    DropDownList ddl = (DropDownList)myrow.FindControl("DropDownList1");
                    ddl.DataSource = ds;
                    ddl.DataValueField = "userid";
                    ddl.DataTextField = "username";
                    ddl.DataBind();
                }
      

  3.   

    好象要在代码“DropDownList d1 =(DropDownList)e.Item.FindControl("ddlOwn");
    ”前面判断一下,你的控件所在模板项的位置,是否是ItemTemplate具体忘记了,帮你find一下
      

  4.   

    itemdatabound里面
    加上
    if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
            {
              
            }
    EditItemTemplate是这个的话你要e.Item.ItemType == ListItemType.EditItem
      

  5.   

    可以了,多谢antiking,不过,我想在dropdownlist中显示当前记录的值,确显示不出来,我在页面中加的代码为:DataValueField='<%# DataBinder.Eval(Container.DataItem,"OWNBY") %>'>
    却显示不出来,请问应该怎么做呢?