C# 错误对象引用未设置为对象的实例?
我已经检查了我的代码,看看是否存在任何空值,但每个人都带来了一个值,但我找不到问题所在C# 错误对象引用未设置为对象的实例?,c#,entity-framework,C#,Entity Framework,我已经检查了我的代码,看看是否存在任何空值,但每个人都带来了一个值,但我找不到问题所在 public partial class UserDetail : ICSBaseUserControl { UserRepository userDao = new UserRepository(); User user; protected void Page_Load(object sender, EventArgs e) { if (!IsPostBac
public partial class UserDetail : ICSBaseUserControl
{
UserRepository userDao = new UserRepository();
User user;
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
long userID = Convert.ToInt64(Request[UrlParameters.UrlParameterName.UserID]);
user = (userID > 0) ? userDao.GetUser(AppSession.Company.ID, userID) : new c365_EntityFramework.User();
if (user.ID > 0)
{
txtFirstName.Text = user.Forename;
txtSurname.Text = user.Surname;
txtAddress.Text = user.Address1;
txtEmail.Text = user.Email;
txtUsername.Text = user.Username;
}
}
}
protected void Button2_Click(object sender, EventArgs e)
{
bool result = userDao.UpdateUser(user.ID, txtFirstName.Text, txtEmail.Text, txtSurname.Text, txtAddress.Text, txtUsername.Text);
}
}
编辑
这就是我修复它的方法,通过将user
从if(!IsPostBack)
加载出来:
我认为问题在于,
user
字段没有被实例化,因此在您单击按钮时,null
您的页面加载
仅在未回发时填充用户
。那么,当您按下按钮时,回发正在进行,此时您没有得到用户
?此外,您还需要查看ASP.NET页面的生命周期
ASP.NET页面不会记住字段,您可能希望将
用户
置于会话状态,然后以这种方式使用它。我认为问题在于字段用户
没有被实例化,因此在单击按钮时将为空
您的页面加载
仅在未回发时填充用户
。那么,当您按下按钮时,回发正在进行,此时您没有得到用户
?此外,您还需要查看ASP.NET页面的生命周期
ASP.NET页面不会记住字段,您可能希望将用户
置于会话状态,然后以这种方式使用。错误在哪一行?从何处获得此错误?bool result=userDao.UpdateUser(user.ID,txtflastname.Text,txtmail.Text,txtnamname.Text,txtdaddress.Text,txtextername.Text);我想这是因为userID传递为NULL。错误在哪一行?从哪里得到这个错误?bool result=userDao.UpdateUser(user.ID,txtFirstName.Text,txtmail.Text,txtnamname.Text,txtdAddress.Text,txtsername.Text);我认为这是因为userID传递为NULL。当你说“不”时,你做了什么尝试/做了什么?将其存储在会话中?回想起来?什么?在新问题或编辑中显示您的更新代码。它不正常。您的答案不正确。请稍后告诉我们好吗?现在我自己修复了它。当您说“不”时,您做了什么尝试/做了什么?它不起作用?将其存储在会话中?回想起来?什么?在新问题或编辑中显示您的更新代码。它工作不正常。您的答案不正确。您当时不介意启发我们吗?已排序,现在我自己修复了它
public partial class UserDetail : ICSBaseUserControl
{
UserRepository userDao = new UserRepository();
User user;
protected void Page_Load(object sender, EventArgs e)
{
long userID = Convert.ToInt64(Request[UrlParameters.UrlParameterName.UserID]);
user = (userID > 0) ? userDao.GetUser(AppSession.Company.ID, userID) : new c365_EntityFramework.User();
if (!IsPostBack)
{
if (user.ID > 0) // Check for user ID
{
txtFirstName.Text = user.Forename;
txtSurname.Text = user.Surname;
txtAddress.Text = user.Address1;
txtEmail.Text = user.Email;
txtUsername.Text = user.Username;
}
}
}