用实体类遇到的郁闷问题
我定义了一个可视化的实体类:UserInfo
[Serializable]
public class UserInfo
{
private string id;
private string name;
private string password;
public UserInfo() { }
public UserInfo(string id, string name)
{
this.id = id;
this.name = name;
}
public UserInfo(string id, string name, string password)
{
this.id = id;
this.name = name;
this.password=password;
}
......
}
接着在一个实现类里返回序列化的实体类:
public IList <UserInfo> GetUsers()
{
SqlDataReader dr;
IList <UserInfo> users = new List <UserInfo> ();
strSql = "Select Staff_Id,Staff_Name,IsActive From tblUsers ";
DB.RunSql(strSql, out dr);
while (dr.Read())
{
UserInfo aUser = new UserInfo(dr.GetString(0), dr.GetString(1));
users.Add(aUser);
}
dr.Close();
return users;
}
谁知道返回的结果有3个字段:Id,Name,Password;但我只想返回前两个字段而已呀?请问这如何解决?不会又要定义一个只有两个字段的实体类吧?
请高兴解疑,谢谢!
[解决办法]
。。!!
Password你不想用就不用呗
难道你的意思是:要是没有赋值该实体就没有这个属性?
------解决方案--------------------
不大明白,不过可能就是的,因为在new 一个新List时,结构就已经定了呀,所以为了满足这结构,一定会把所以的字段都加上的吧!
高手去哪了?
[解决办法]
对阿,那你就可以再加上个字段,然后password属性里通过新添加的字段控制password字段显示与否
哎,最近怎么了,连话都说不利索了。。。。。
[解决办法]
[Serializable]
public class MyObject
{
public int n1;
[NonSerialized] public int n2;//使用NonSerialized关键字指定该字段不参与序列化
public String str;
}
[解决办法]
学习
帮顶
[解决办法]
有没有高手指点呀.
我想只能用两个类(可以是继承)来实现吧
一个包函Password ,一个没有
[解决办法]
//之前我也是和你同样的想法,不用第3种构造函数就可了.但当我把返回的实体集合绑定到GridView时,实体类的所有属性(字段)都会显示出来.您可以亲自试试.
--------------------------
楼主,我总算是明白你的意思了,你是要把实体类直接绑定到GridView控件上,如果有Password字段的话那就会显示这一列了,而这是你所不期望的。
假设我理解是正确的,那就是楼主你的问题了,我记得在GridView控件上,如果不使用自动生成列的功能,你可以指定要显示哪些列,而这些列绑定到哪个属性。
[解决办法]
好象只能取整个实体类,不能取部分