上节写了生成修改操作的sql,这节写生成查询删除操作的sql
public List<object> Query<T>(string sql, params object[] args)
{
SqlParameter[] par = new SqlParameter[args.Length];
for (int i = 0; i < par.Length; i++)
{
par[i] = new SqlParameter("@"+i, args[i]);
}
return new List<object>() { sql ,par};
}
public List<object> Query<T>(object obj)
{
object[] objAttrs = null;
List<string> listColumnName = new List<string>();
Type objType = typeof(T);
objAttrs = objType.GetCustomAttributes(typeof(DBAttribute), true);
StringBuilder sb = new StringBuilder();
sb.Append("select * from ");
if (objAttrs.Length > 0)
{
DBAttribute attr = objAttrs[0] as DBAttribute;
sb.Append(attr != null ? attr.FiledName : objType.Name);
}
else
{
sb.Append(objType.Name);
}
List<PropertyInfo> pro = objType.GetProperties().ToList();
SqlParameter[] par = new SqlParameter[1];
for (int i = 0; i < pro.Count; i++)
{
objAttrs = pro[i].GetCustomAttributes(typeof(DBAttribute), true);
if (objAttrs.Length > 0)
{
DBAttribute attr = objAttrs[0] as DBAttribute;
if (attr != null)
{
if (attr.FieldProps == "1")
{
sb.Append(string.Format(" where {0}=@{1}", pro[i].Name, pro[i].Name));
par[0] = new SqlParameter("@" + pro[i].Name, obj);
}
}
}
}
return new List<object>() { sb.ToString(), par };
}
public List<object> Delete<T>(string sql, params object[] args)
{
object[] objAttrs = null;
Type objType = typeof(T);
objAttrs = objType.GetCustomAttributes(typeof(DBAttribute), true);
StringBuilder sb = new StringBuilder();
sb.Append("Delete ");
if (objAttrs.Length > 0)
{
DBAttribute attr = objAttrs[0] as DBAttribute;
sb.Append(attr != null ? attr.FiledName : objType.Name);
}
else
{
sb.Append(objType.Name);
}
sb.Append(" "+sql);
SqlParameter[] par = new SqlParameter[args.Length];
for (int i = 0; i < par.Length; i++)
{
par[i] = new SqlParameter("@" + i, args[i]);
}
return new List<object>() { sb.ToString(), par };
}
第一次写博客,很多地方不懂,欢迎大家批评指正,谢谢!联系QQ:1831996117.加好友注明是博客