public partial class Admin_AddSortOrCategory : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        BinData2();
    }
///绑定DropDownList(CategoryList)
  public void BinData2()
    {
        CategoryManager categoryManager = new CategoryManager();
        List<Category> List_Category = new List<Category>();
        List_Category = (List<Category>)categoryManager.GetAllCategories();        this.CategoryList.DataSource = List_Category;
        this.CategoryList.DataTextField = "Name";
        this.CategoryList.DataValueField = "Id";
        this.CategoryList.DataBind();    }///单击事件
  protected void SortButton_Click(object sender, EventArgs e)
    {
        SortManager sortManager = new SortManager();
        Sort sort = new Sort();
        sort.Name = SortText.Text.ToString();
        sort.Category.Id = Convert.ToInt32(CategoryList.SelectedItem.Value);
        sortManager.AddSort(sort);        Response.Redirect("AddSortOrCategory.aspx");
    }
为什么 【sort.Category.Id = Convert.ToInt32(CategoryList.SelectedItem.Value);】报错:未将对象引用设置到对象的实例
///AddSort()方法  
public int AddSort(Sort sort)
        {
            DBHelper dbHelper = new DBHelper();
            SqlParameter[] prams = new SqlParameter[]
            {
                dbHelper.CreateInParam("@Name",SqlDbType.NVarChar,20,sort.Name),
                dbHelper.CreateInParam("@CategoryId",SqlDbType.Int,4,sort.Category.Id)            };
            try
            {
                return (dbHelper.RunProc("Add_Sort", prams));
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                return 0;
            }
        }

解决方案 »

  1.   

    CategoryList.SelectedItem 是 null,没有 Item 是出于被选择状态。应该先判断一下,SelectedItem 是否是 null。
      

  2.   

    CategoryList.SelectedItem可能是null
      

  3.   

    CategoryList.SelectedValue
    是否选择值。判断if(CategoryList.SelectedValue!=null)
      

  4.   

    sort.Category.Id = Convert.ToInt32(CategoryList.SelectedValue==null?"0":CategoryList.SelectedValue); 
    sort.Category是否为null
      

  5.   

    CategoryList已经绑定了 为什么CategoryList.SelectedValue是Null呢
      

  6.   

    设置CategoryList.SelectedValue默认值
    判断sort.Category看看
      

  7.   

    还是有问题  我水平不行--!
    又遇到昨天那问题了
    public partial class Admin_SortBook : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            BinCategoryData();
            
        }    public void BinSortData()//绑定小类别
        {
            
            int categoryId = Convert.ToInt32(this.CategoryList.SelectedItem.Value);
            SortManager sortManager = new SortManager();        this.SortList.DataSource = sortManager.GetSortByCategoryId(categoryId);
            this.SortList.DataTextField = "Name";
            this.SortList.DataValueField = "Id";
            this.SortList.DataBind();
           
        }    public void BinCategoryData()//绑定大类别
        {
            CategoryManager categoryManager = new CategoryManager();        this.CategoryList.DataSource = categoryManager.GetAllCategories();
            this.CategoryList.DataTextField = "Name";
            this.CategoryList.DataValueField = "Id";
            this.CategoryList.DataBind();
            BinSortData();
        
        }
    根据大类的Id查出小类  但只能查出第一个