0

我正在将一些数据数据绑定到 asp.net c# 中的下拉列表。使用下面的代码绑定数据时出现以下错误。从我的眼睛看一切都很好,但我可以弄清楚。这是奇怪的部分,页面在开发环境中运行时运行良好,但当我们在测试环境中运行时,它会报错。有什么建议么?

在此处输入图像描述

页面加载:

  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();
}
4

1 回答 1

0

您的方法中出现“未设置对象实例的对象引用”错误LoadTradingPartnerIDs。这总是意味着您正在尝试对未实例化的对象(已声明但未初始化的对象)执行某些操作。

您显示的堆栈跟踪表明它位于 ReturnsMaint.aspx.cs 的第 331 行。虽然我无法准确说出您的代码片段中的哪一行,但您当然应该能够在您的 IDE 中 =)

话虽如此,对于导致错误的原因,该方法只有两种可能性:

  1. data.ReturnsTradingPartnerID_GetList();正在返回 null 或空的 DataSet 对象。这似乎是最有可能的罪魁祸首。这将导致“r”成为您未实例化的对象,因此尝试将其绑定到您的数据绑定控件将导致此错误。
  2. lstTradingPartnerID尚未初始化(似乎非常不可能,因为这是从 Page_Load 调用的)。

由于您说它在开发中有效,但在测试中无效,因此我将确保您具有适当的访问权限,可以从测试中的数据存储中获取数据。无论在“幕后”发生什么ReturnsTradingPartnerID_GetList();,请确保您使用正确的连接字符串等来访问生成返回列表的数据存储。真正的问题在那个兔子洞的某个地方。

于 2013-04-11T14:46:44.583 回答