日期:2014-05-18  浏览次数:20367 次

对象引用未初始化问题
public ITimeOffManager TimeOffManager = (new CSOFT.Intranet.TimeOff.TimeOffFactory()).CreateTimeOffManager();
  public static TORequestFormInfor TORF = new TORequestFormInfor();
  protected void Page_Load(object sender, EventArgs e)
  {
  if (!IsPostBack)
  {
  string TimeOffNumber = "";
  //生成流水号
  TimeOffNumber = TimeOffManager.GenerationTONumber(userInfor.UserId);

  TORF.UserID = userInfor.UserId;
  TORF.SequenceID = TimeOffNumber;

  TimeOffManager.TORequest(ref TORF);

  TORF.Date = DateTime.Parse(Request["txtTimeOffDate"].ToString());

  TORF.Group = userInfor.Department;
  TORF.Type = "OverTime";
  TORF.Hours = float.Parse(Request["txtHours"].ToString());
  TORF.Reason = Request["txtTimeOffReason"].ToString();

  if (TimeOffManager.TOSave(ref TORF)) //出错,提示Object reference not set to an instance of an object.
  Response.Redirect("TimeOffRequestManager.aspx");

  }

页面的作用是接受ASP页的提交,并保存。

------解决方案--------------------
很有可能是TORF这个东西的某个属性没有赋值的原因。

------解决方案--------------------
根据你的代码最有可能的原因是你的工厂方法并没有创建出TimeOff××××那个对象!你最好检查下相关调用,其次不建议使用全局的static变量,在页面中存在这样的变量是所有用户共享的!
------解决方案--------------------
TORF的所有属性就是:Reason Hours Type Group Date SequenceID UserID 吗?如果是的话,看看这几个属性是不是有空值。 
还有TimeOffManager.TORequest(ref TORF); 这句话是什么意思?获取 Torf的信息吗?如果是的话,那么是不是将前面的UserID和SequenceID 覆盖了呢?
------解决方案--------------------
static变量的副作用会在多个用户同时访问一个页面的时候产生,不知道你有没有仔细理解我的意思!如果你是一个页面多次用到这个,为什么直接用public了?