asp.net 狼奔 Dal层数据过滤
来源:互联网 发布:javascript 位运算 编辑:程序博客网 时间:2024/04/26 19:49
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Common;
using System.Reflection;
namespace Langben.DAL.Framework
{
public class SelectData
{
public static string SelectDataByRole<T>(ref int flagWhere) where T : new()
{
//需要过滤的字段名:key为表名,value为字段名
Dictionary<string, string> fieldNams = new Dictionary<string, string>();
fieldNams.Add("SysPerson", "Name");
List<string> keys = new List<string>(fieldNams.Keys);
string where = string.Empty + "(";
Account ac = null;
if (System.Web.HttpContext.Current != null && System.Web.HttpContext.Current.Session != null && System.Web.HttpContext.Current.Session["account"] != null)
{
ac = System.Web.HttpContext.Current.Session["account"] as Account;
}
List<string> roles = ac.RoleNames;
if (roles.Contains("超级管理员"))
{
if (where == "(")
{
return where.Replace("(", "");
}
return where;
}
//反射模型
T t = new T();
Type type = typeof(T);
string tempName = "";
// 获得此模型的公共属性
PropertyInfo[] propertys = t.GetType().GetProperties();
//获得类名
string className = type.Name;
//遍历属性
foreach (PropertyInfo pi in propertys)
{
//字段名
tempName = pi.Name;
//是否包含此类
if (fieldNams.Keys.Contains(className))
{
for (int i = 0; i < fieldNams.Count; i++)
{
//是否包含此字段
if (fieldNams[keys[i]] == tempName)
{
//遍历角色
foreach (var item in roles)
{
if (flagWhere != 0)
{
where += " or ";
}
flagWhere++;
if (item == "普通人员")
{
//判断字段
if (tempName == "Name")
{
where += "it. " + tempName + " =='" + ac.PersonName + "'";
continue;
}
}
if (item == "小管理员")
{
//判断字段
if (tempName == "Name")
{
where += "it. " + tempName + " is Not Null";
continue;
}
}
}
}
}
}
}
if (where == "(")
{
return where.Replace("(", "");
}
return where + ")";
}
}
}
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Common;
using System.Reflection;
namespace Langben.DAL.Framework
{
public class SelectData
{
public static string SelectDataByRole<T>(ref int flagWhere) where T : new()
{
//需要过滤的字段名:key为表名,value为字段名
Dictionary<string, string> fieldNams = new Dictionary<string, string>();
fieldNams.Add("SysPerson", "Name");
List<string> keys = new List<string>(fieldNams.Keys);
string where = string.Empty + "(";
Account ac = null;
if (System.Web.HttpContext.Current != null && System.Web.HttpContext.Current.Session != null && System.Web.HttpContext.Current.Session["account"] != null)
{
ac = System.Web.HttpContext.Current.Session["account"] as Account;
}
List<string> roles = ac.RoleNames;
if (roles.Contains("超级管理员"))
{
if (where == "(")
{
return where.Replace("(", "");
}
return where;
}
//反射模型
T t = new T();
Type type = typeof(T);
string tempName = "";
// 获得此模型的公共属性
PropertyInfo[] propertys = t.GetType().GetProperties();
//获得类名
string className = type.Name;
//遍历属性
foreach (PropertyInfo pi in propertys)
{
//字段名
tempName = pi.Name;
//是否包含此类
if (fieldNams.Keys.Contains(className))
{
for (int i = 0; i < fieldNams.Count; i++)
{
//是否包含此字段
if (fieldNams[keys[i]] == tempName)
{
//遍历角色
foreach (var item in roles)
{
if (flagWhere != 0)
{
where += " or ";
}
flagWhere++;
if (item == "普通人员")
{
//判断字段
if (tempName == "Name")
{
where += "it. " + tempName + " =='" + ac.PersonName + "'";
continue;
}
}
if (item == "小管理员")
{
//判断字段
if (tempName == "Name")
{
where += "it. " + tempName + " is Not Null";
continue;
}
}
}
}
}
}
}
if (where == "(")
{
return where.Replace("(", "");
}
return where + ")";
}
}
}
0 0
- asp.net 狼奔 Dal层数据过滤
- [asp.net]在15分钟之内建立数据访问层-DAL
- 在ASP.NET_2.0中操作数据.在ASP.NET页面中处理BLL.DAL层的异常
- ASP.NET三层架构DAL层连接数据库的方法
- [原创].Net下的数据持久层DAL
- Scott Mitchell 的ASP.NET 2.0数据教程之十八: 在ASP.NET页面中处理BLL/DAL层的异常
- Scott Mitchell 的ASP.NET 2.0数据教程之十八:: 在ASP.NET页面中处理BLL/DAL层的异常
- Scott Mitchell 的ASP.NET 2.0数据教程之十八:: 在ASP.NET页面中处理BLL/DAL层的异常
- Scott Mitchell 的ASP.NET 2.0数据教程之十八:: 在ASP.NET页面中处理BLL/DAL层的异常
- 分布式数据访问层(DAL)
- ASP.NET: SQL DAL Helper
- ASP.NET三层项目中DAL层方法所用到的SQL语句
- .Net Pet Shop 4 初探之二:数据层(DAL)简析(上)
- .Net Pet Shop 4 初探之二:数据层(DAL)简析(下)
- DAL-自动生成数据访问层代码
- 三层架构之数据层DAL
- 数据访问层DAL实现过程
- Access数据访问层(DAL)
- <iframe 去掉黑色边框
- Sql2008安装提示需重启但重启后问题依旧的解决方法
- cpe移植到framework后,原有数据库存放问题的解决。
- ios内存管理机制转载
- android关于shape的使用
- asp.net 狼奔 Dal层数据过滤
- 大端小端和共同体
- keyboard-input-platform2:input输入子系统(未完)
- KMP
- TypedArray和attrs.xml
- BASH的保护性编程技巧
- Git使用经验
- nginx作用
- 强制类型转换Demo