几种属性扩展的方式
1、性别属性扩展
private bool _Sex; //成员变量 public bool Sex // 属性 { get { return _Sex; } set { _Sex = value; } } public string SexStr //扩展的属性 { get { return _Sex ? "男" : "女"; } }
2、年龄与生日日期属性扩展
private DateTime _Birthday; //成员变量 public DateTime Birthday //属性 { get { return _Birthday; } set { _Birthday = value; } } public string BirthdayStr //扩展属性 用xx年xx月xx日 { get { return _Birthday.ToString("yyyy年MM月dd日"); } } public int Age //扩展的属性 年龄 { get { return DateTime.Now.Year - _Birthday.Year; } }
3、根据编号取相应的名称
private string _Nation; //成员变量 public string Nation //属性 { get { return _Nation; } set { _Nation = value; } } public string NationName //扩展属性 { get { return new UserNationData().SelectNationName(_Nation); } //调用方法 }
using System; using System.Collections.Generic; using System.Data.SqlClient; using System.Linq; using System.Text; namespace ConsoleApplication1.App_Code { public class UserNationData { SqlConnection conn; SqlCommand cmd; public UserNationData() { conn = new SqlConnection("server=.;database=Data0216;user=sa;pwd=123"); cmd = conn.CreateCommand(); } public string SelectNationName(string ncode) { string end = "<暂无>"; cmd.CommandText = "select *from UserNation where NationCode = @a"; cmd.Parameters.Clear(); cmd.Parameters.AddWithValue("@a", ncode); try { conn.Open(); SqlDataReader dr = cmd.ExecuteReader(); if (dr.HasRows) { dr.Read(); end = dr["NationName"].ToString(); } } catch { } finally { conn.Close(); } return end; } } }
补充
1.通配符的使用,在ado.net中查询某个模糊数据
例:查询出汽车表中名字到宝马的汽车,(数据库连接代码)
public List<Users> select(string name) { List<Users> list = new List<Users>(); cmd.CommandText = "select * from Car where name like @a"; cmd.Parameters.Clear(); cmd.Parameters.AddWithValue("@a",'%'+name+'%'); conn.Open(); SqlDataReader dr = cmd.ExecuteReader(); while (dr.Read()) { Users u = new Users(); u.Name = dr["name"].ToString(); list.Add(u); } conn.Close(); return list; }
2.Parameters 集合是属于数据库操作类的,作用是防止字符串注入攻击
数据库操作类 SqlCommand cmd;
数据库连接类 SqlConnection conn;
3.泛型集合定义:不固定长度,固定数据类型
4.类的构造函数在什么情况下会被调用:实例化对象时
调用方法是:构造函数已经使用完毕
5.子类可以继承父类中的所有public方法和属性
虚方法不一定要重写,但是抽象类一定要重写