您的位置:首页 > 其它

手写ORM+反射的增删改查

2019-04-01 20:11 10 查看

显示:

//显示

public DataTable show<T>(T model)
{
//先判断传过来的是什么类型
Type t=model.GetType();
//返回公共属性
PropertyInfo[]  infos=t.GetProperties();
//sql语句
string sql=string.Format("select * from"+t.Name);
var ss=DBHelper.GetTable(sql)//DBHelper是sql通用类
return ss;

}

添加:

public int Add<T>(T model)
{
//判断是什么类型的
Type t = model.GetType();
//公共属性
PropertyInfo[] infos = t.GetProperties();
//可变字符串
StringBuilder builder = new StringBuilder();
//拼接字符串
builder.Append("insert into "+t.Name+" values('");
//定义一个变量
int i = 0;
//循环
foreach (var item in infos)
{
i++;
//判断主键是不是为空
if (item.Name=="Id")
{

}
else
{
if (i == infos.Length)
{
builder.Append(item.GetValue(model)).Append("')");

}
else
{
builder.Append(item.GetValue(model)).Append("','");
}
}

}
return DBHelper.Execute(builder.ToString());

}

删除:

//删除
public int Delete<T>(T model,int Id)
{
Type t = model.GetType();
PropertyInfo[] infos = t.GetProperties();
string str = "delete from  " + t.Name + " where Id=" + Id;
return DBHelper.Execute(str);

}

查询:

//查询
public DataTable Select<T>(T model,int Id)
{
Type t = model.GetType();
PropertyInfo[] infos = t.GetProperties();
string str = string.Format("select * from "+t.Name+" where Id="+Id);
return DBHelper.GetTable(str);
}

反填:

//反填
public DataTable fan<T>(T model,int Id)
{
Type t = model.GetType();
PropertyInfo[] infos = t.GetProperties();
string str = string.Format("select * from "+t.Name+" where Id="+Id);
return DBHelper.GetTable(str);

}

修改

//修改
public int xiu<T>(T model,int Id)
{
Type t = model.GetType();
PropertyInfo[] infos = t.GetProperties();
StringBuilder str = new StringBuilder();
str.Append("update" + t.Name + "set");

foreach (var item in infos)
{

str.Append(item.Name+"='"+item.GetValue(model)+"',");

}
str = str.Remove(str.Length-1,1);
str.Append(" where Id="+Id);
return DBHelper.Execute(str.ToString());

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: