我将一些数据数据绑定到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();
}
答案 0 :(得分:0)
您正在获取未设置为对象实例的" 对象引用" LoadTradingPartnerIDs
方法中的错误。此始终表示您尝试使用未实例化的对象(已声明但尚未初始化的对象)执行某些操作。
您显示的堆栈跟踪表明它位于ReturnsMaint.aspx.cs的第331行。虽然我无法确切地告诉您代码片段中的哪一行,但您当然应该可以在IDE中使用=)
话虽如此,该方法中只有几种可能导致错误:
data.ReturnsTradingPartnerID_GetList();
返回null或空DataSet对象。这似乎是最可能的罪魁祸首。它会导致" r"成为您未经实例化的对象,因此尝试将其绑定到您的数据绑定控件将导致此错误。lstTradingPartnerID
尚未初始化(似乎非常不可能,因为这是从Page_Load调用的)。由于您说它在开发中工作,但未在测试中工作,因此我确保您具有从测试中的数据存储中获取数据的正确访问权限。无论发生什么事情"在幕后"在ReturnsTradingPartnerID_GetList();
中,确保您使用正确的连接字符串等来访问生成返回列表的数据存储。真正的问题是那个兔子洞。