我在使用C#中的网站代码时遇到问题,当我调试它时,它会打开网站(Chrome中的localhost。除了我调试的那个页面外,每个页面都有效,无论是否是我正在调试的页面。每当我尝试打开它时,它会在我在下面标记的行上给出一个对象引用错误。无论我使用哪种浏览器,都会发生这种情况。
Protected void page_load (object sender, EventArgs e)
{
DateTime dteNow = SI.Getsource.DAL.Time.Now.Eastern();
If(!IsPostBack)
{
txtStartDate.SelectDate = dteNow.AddDays(-2)
txtEndDate.SelectedDate = dtenow.AddDays(1)
txtStartDate.Visible = False
txtEndDate.Visible = False
Shipping.DataTable.dt = SI.Getsource.DAL.EquipmentDB.getPrinter();
ddlPrinter.DataSource = dt.Result
ddlPrinter.DataTextField = dt.Result.Columns["Name"] //Error is here
ddlPrinter.DataValueField = dt.Result.Columns["PrinterID"]
ddlPrinter.DataBind();
Try
{
ddlPrinter.SelectedValue = System.Web.Configuration.WebConfigurationManager.AppSettings["DefaultPrinterID"]
}
Catch
}
}
我尝试在IE和Firefox中运行它。我还尝试为“名称”添加一个类似于“打印机”的try-catch但是没有做任何事情。任何建议将不胜感激,因为此错误阻止我调试实际问题。
编辑:我正在使用Visual Studio 2015.此外,这只发生在我本地运行页面时,即。调试时。
答案 0 :(得分:1)
在显示错误的行上设置断点,然后将dt.Result
添加到 Watch 窗口,以便在此行执行中断时检查其值。可能是dt.Result
为空。
编辑:此外,我认为您只需要指定.DataTextField
和.DataValueField
的字段名称。
答案 1 :(得分:0)
事实证明,这是一个记忆问题。一旦我处理了它,它就有用了。