我正在从5个文本框中收集数据。 输入数据后,单击提交按钮以发送要在另一个表单上显示的数据,并希望将其保存到数据库中。
点击“提交”
我得到NullReferenceException未被用户代码
处理这个表格的代码背后突出显示......
if (clsDataLayer.SavePersonnel(Server.MapPath("PayrollSystem_DB.mdb"),
Session["FirstName"].ToString,
Session["LastName"].ToString,
Session["PayRate"].ToString,
Session["StartDate"].ToString,
Session["EndDate"].ToString()))
任何想法?我不是很有经验。在此先感谢!!
答案 0 :(得分:1)
Session["Key"]
返回一个对象。如果该对象为null,则在其上调用ToString()
将生成空引用异常。
您需要先检查您检查的每个字段是否都为空。 e.g。
(Session["FirstName"] != null)
? Session["FirstName"]
: String.Empty;
答案 1 :(得分:0)
在检索这些变量之前,您需要确保已设置这些Session
变量。在用户的会话中,您应该在某些时候设置这些会话变量,如
Session["FirstName"] = txtFirstName.Text;
//etc
您可以在使用它们之前进行检查,以确保它们不为空,例如
if(Session["FirstName"] != null){}
此外,当您使用.ToString()
方法时,请确保将()
(与上一个方法相同)附加到所有方法。
答案 2 :(得分:0)
clsDataLayer
为NULL,或者会话中的5个值之一不存在。您必须测试空值。
顺便说一句,你在4个地方的()
之后遗漏了ToString
;我很惊讶甚至编译。