2013-04-11 121 views
0

我將數據綁定到asp.net c#中的下拉列表中。我正在使用下面的代碼綁定數據時出現以下錯誤。從我眼中看,一切都很美好,但我可以弄明白。這是一個奇怪的部分,在開發環境中運行它時頁面運行良好,但是當我們在測試環境中運行它時,它會發生錯誤。有什麼建議麼?數據綁定到列表不能正常工作

enter image description here

頁面加載:

protected void Page_Load(object sender, EventArgs e) 
    { 
     if (QSReturnHeaderID == Guid.Empty && !User.IsInRole("Returns_Edit")) 
      Response.Redirect("ReturnsSearch.aspx"); 

     //Link the branch image to the branch list 
     imgBranch.LinkControl = lstBranchPlant; 

     //CompanyImageScript(); 
     if (!this.Page.IsPostBack) 
     { 
      lstBranchPlant.DataBind(); 
      lstReasonCode.DataBind(); 

      if (this.QSReturnHeaderID == Guid.Empty) 
      { 
       sm.SetStage("HeaderEntry"); 

      } 
      else 
      { 
       LoadReturnHeader(); 


      }     
      LoadShipToAddressNumbers(); 
      LoadTradingPartnerIDs(); 
     } 
    } 

數據綁定代碼:

private void LoadTradingPartnerIDs() 
{ 
    BCCR.Data.ReturnsData data = new BCCR.Data.ReturnsData(); 
    DataSet r = data.ReturnsTradingPartnerID_GetList(); 
    lstTradingPartnerID.DataSource = r; 
    lstTradingPartnerID.DataBind(); 
} 
+0

你可以發佈或指出BasePage.cs的第19行的內容嗎? – 2013-04-11 14:38:03

回答

0

你得到錯誤的 「不設置到對象的實例對象引用」你的LoadTradingPartnerIDs方法。這個總是意味着你試圖用一個沒有實際意義的對象(已聲明但未初始化的東西)做某件事。

您顯示的堆棧跟蹤表明它位於ReturnsMaint.aspx.cs的第331行。雖然我不能確切地知道你的代碼片段中的哪一行,但你當然應該可以在你的IDE中)這就是說,這種方法中只有幾種可能性導致錯誤:

  1. data.ReturnsTradingPartnerID_GetList();被返回null,或空DataSet對象。這似乎是最可能的罪魁禍首。這會導致「r」成爲你的無實際意義的對象,因此試圖將它綁定到你的數據綁定控件將會導致這個錯誤。
  2. lstTradingPartnerID尚未初始化(看起來難以置信的不太可能,因爲這是從Page_Load中調用的)。

既然你說它在dev中有效,但在測試中不起作用,那麼我會確保你有正確的訪問方式來從測試中的數據存儲中獲取數據。無論「幕後」發生在ReturnsTradingPartnerID_GetList();中,請確保您使用正確的連接字符串等來訪問生成您的返回列表的數據存儲。真正的問題是那個地方兔子洞。