110,534
社区成员
发帖
与我相关
我的任务
分享
public class BusinessContainOfPaymentDal
{
/// <summary>
/// 获得数据列表(比DataSet效率高,推荐使用)
/// </summary>
public List<BusinessContainOfPaymentInfo> GetModelList(string strWhere)
{
StringBuilder strSql = new StringBuilder();
strSql.Append("select * ");
strSql.Append(" FROM View_业务对应的支付方式 ");
if (strWhere.Trim() != "")
{
strSql.Append(" where " + strWhere);
}
strSql.Append(" ORDER BY 序号");
List<BusinessContainOfPaymentInfo> list = new List<BusinessContainOfPaymentInfo>();
Database db = DatabaseFactory.CreateDatabase();
using (IDataReader dataReader = db.ExecuteReader(CommandType.Text, strSql.ToString()))
{
while (dataReader.Read())
{
list.Add(ReaderBind(dataReader));
}
}
AssignValueToAlias(list, "SY支付方式");
//AssignValueToAlias<BusinessContainOfPaymentInfo>(list, "SY支付方式","名称");
return list;
}
/// <summary>
/// 指定值给别名
/// </summary>
/// <param name="?"></param>
public void AssignValueToAlias<T>(List<T> list, string tableName, string name)
{
AnotherNameDal dal = new AnotherNameDal();
List<BeautySalon.Model.AnotherNameInfo> _AnotherNameInfoList = dal.GetModelList(tableName);
foreach (T model in list)
{
PropertyInfo propertyInfo = model.GetType().GetProperty(name, BindingFlags.Public | BindingFlags.Instance | BindingFlags.IgnoreCase);
//查询找不到值?
IEnumerable<AnotherNameInfo> anotherNameInfo =
from model2 in _AnotherNameInfoList
where model2.表名 == tableName && model2.字段名 == Convert.ToString(propertyInfo.GetValue(model, null))
select model2;
propertyInfo = model.GetType().GetProperty("别名", BindingFlags.Public | BindingFlags.Instance | BindingFlags.IgnoreCase);
foreach (AnotherNameInfo customer in anotherNameInfo)
{
propertyInfo.SetValue(model, customer.别名, null);
}
}
}
/// <summary>
/// 指定值给别名。这个方法是可以使用的
/// </summary>
/// <param name="?"></param>
public void AssignValueToAlias(List<BusinessContainOfPaymentInfo> list, string tableName)
{
AnotherNameDal dal = new AnotherNameDal();
List<BeautySalon.Model.AnotherNameInfo> _AnotherNameInfoList = dal.GetModelList(tableName);
foreach (BusinessContainOfPaymentInfo model in list)
{
IEnumerable<AnotherNameInfo> anotherNameInfo =
from model2 in _AnotherNameInfoList
where model2.表名 == tableName && model2.字段名 == model.名称
select model2;
foreach (AnotherNameInfo customer in anotherNameInfo)
{
model.别名 = customer.别名;
}
}
}
/// <summary>
/// 对象实体绑定数据
/// </summary>
private BusinessContainOfPaymentInfo ReaderBind(IDataReader dataReader)
{
BusinessContainOfPaymentInfo model = new BusinessContainOfPaymentInfo();
object ojb;
ojb = dataReader["业务编号"];
if (ojb != null && ojb != DBNull.Value)
{
model.业务编号 = (BusinessTypes)Enum.Parse(typeof(BusinessTypes), ojb.ToString());
}
model.业务名称 = dataReader["业务名称"].ToString();
model.支付方式编号 = dataReader["支付方式编号"].ToString();
model.名称 = dataReader["名称"].ToString();
ojb = dataReader["启用"];
if (ojb != null && ojb != DBNull.Value)
{
model.启用 =Convert.ToBoolean(ojb);
}
ojb = dataReader["现金业绩"];
if (ojb != null && ojb != DBNull.Value)
{
model.现金业绩 = Convert.ToBoolean(ojb);
}
ojb = dataReader["消耗业绩"];
if (ojb != null && ojb != DBNull.Value)
{
model.消耗业绩 =Convert.ToBoolean(ojb);
}
ojb = dataReader["系统默认"];
if (ojb != null && ojb != DBNull.Value)
{
model.系统默认 =Convert.ToBoolean(ojb);
}
ojb = dataReader["序号"];
if (ojb != null && ojb != DBNull.Value)
{
model.序号 =Convert.ToInt32(ojb);
}
model.备注 = dataReader["备注"].ToString();
ojb = dataReader["业务对应的支付方式Id"];
if (ojb != null && ojb != DBNull.Value)
{
model.业务对应的支付方式Id = new Guid(ojb.ToString());
}
return model;
}
}