属性扩展
大体意思:有外键关系时将代号化信息处理成原始文字
如:Info表中的民族列显示的是民族代号处理成Nation表中的民族名称
需要在Info类里面扩展一个显示nation名称的属性
using System;
using System.Collections.Generic;
using System.Data.SqlClient;
using System.Linq;
using System.Text; namespace 实体类_数据访问类.App_Code
{
public class Users
{
SqlConnection conn = null;
SqlCommand cmd = null; public Users()
{
conn = new SqlConnection("server=.;database=Data0928;user=sa;pwd=123");
cmd = conn.CreateCommand();
} private int _Ids; /// <summary>
/// ids
/// </summary>
public int Ids
{
get { return _Ids; }
set { _Ids = value; }
}
private string _UserName; /// <summary>
/// 用户名
/// </summary>
public string UserName
{
get { return _UserName; }
set { _UserName = value; }
}
private string _PassWord; /// <summary>
/// 密码
/// </summary>
public string PassWord
{
get { return _PassWord; }
set { _PassWord = value; }
}
private string _NickName; /// <summary>
/// 昵称
/// </summary>
public string NickName
{
get { return _NickName; }
set { _NickName = value; }
} public string NickAndUser
{
get
{
return _NickName + "(" + _UserName + ")";
}
} private bool _Sex; /// <summary>
/// 性别
/// </summary>
public bool Sex
{
get { return _Sex; }
set { _Sex = value; }
} public string SexStr
{
get
{
return _Sex ? "男" : "女";
}
} private DateTime _Birthday; /// <summary>
/// 生日
/// </summary>
public DateTime Birthday
{
get { return _Birthday; }
set { _Birthday = value; }
} public string BirthdayStr
{
get
{
return _Birthday.ToString("yyyy年MM月dd日");
}
} private string _Nation; /// <summary>
/// 民族
/// </summary>
public string Nation
{
get { return _Nation; }
set { _Nation = value; }
} public string NationName
{
get
{
string end = "<未填>";
cmd.CommandText = "select *from Nation where NationCode = @a";
cmd.Parameters.Clear();
cmd.Parameters.Add("@a",_Nation);
conn.Open();
SqlDataReader dr = cmd.ExecuteReader();
if (dr.HasRows)
{
dr.Read();
end=dr["NationName"].ToString();
}
conn.Close(); return end;
}
} private string _Class; /// <summary>
/// 班级
/// </summary>
public string Class
{
get { return _Class; }
set { _Class = value; }
} public string ClassName
{
get
{
string end = "<无班级>"; cmd.CommandText = "select *from Class where ClassCode = @a";
cmd.Parameters.Clear();
cmd.Parameters.Add("@a",_Class);
conn.Open();
SqlDataReader dr = cmd.ExecuteReader();
if (dr.HasRows)
{
dr.Read();
end = dr["ClassName"].ToString();
}
conn.Close();
return end;
}
} }
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using 实体类_数据访问类.App_Code; namespace 属性扩展
{
class Program
{
static void Main(string[] args)
{
List<Users> ulist = new UsersData().Select(); Console.WriteLine("序号 密码 昵称 性别 生日 民族 班级");
foreach (var u in ulist)
{
Console.WriteLine(u.Ids + " " + u.PassWord + " " + u.NickAndUser + " " + u.SexStr + " " + u.BirthdayStr + " " + u.NationName + " " + u.ClassName);
} Console.ReadKey();
}
}
}