对象引用未初始化问题
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了?