2013-04-11 122 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();中,请确保您使用正确的连接字符串等来访问生成您的返回列表的数据存储。真正的问题是那个地方兔子洞。