【发布时间】:2013-11-14 17:22:24
【问题描述】:
如何将值从实体层传递到表示层。我已经填充了对象 Person,但是当我在 Presentation 中调用它时它变成了 null。
谁能帮帮我。提前致谢!
实体:
public class Person
{
public int PersonID { get; set; }
public string Firstname { get; set; }
public string Lastname { get; set; }
}
数据层:
public List<Person> GetPersonSingleByPersonID(string personID)
{
List<Person> objPerson = new List<Person>();
DataTable dt = new DataTable();
...
foreach (DataRow dr in dt.Rows)
{
objPerson.Add(new Person()
{
PersonID = dr["PersonID"].ToString(),
Firstname = dr["Firstname"].ToString(),
Lastname = dr["Lastname"].ToString()
});
}
return objPerson;
}
表示层:
Person objPerson = new Person(); //I think error goes here
txtPersonID.Text = objPerson.PersonID;
txtFirstname.Text = objPerson.Firstname;
txtLastname.Text = objPerson.Lastname;
【问题讨论】:
-
您确定您的
objPerson是null。没有任何异常,但您确定您的文本字段已正确初始化? -
您的代码看起来正确。你确定有行吗?并且它们确实包含数据?调试代码时会发生什么? (您也没有显示实际获取数据的代码部分......这也可能相关)。
-
是的,当我在数据层中进行调试时有结果。但是当我尝试显示来自对象的数据时,它变成了 null
-
GetPersonSingleByPersonID返回一个列表。有没有可能你做了类似var person = (Person)GetPersonSingleByPersonID(id); -
我认为这一行 Person objPerson = new Person();正在创建另一个为 null 的 Person 实例。如何在不实例化新 Person 的情况下将值从 DAL 检索到我的演示文稿?