/// <summary> /// 通过数据读取器生成实体类 /// </summary> /// <param name="rdr"></param> /// <returns></returns> private static StatInfoListEntity GetEntityFromrdr(NullableDataReader rdr) { StatInfoListEntity info = new StatInfoListEntity(); info.ID = rdr.GetInt32("ID"); info.StartDate = rdr.GetString("StartDate"); info.TotalNum = rdr.GetInt32("TotalNum"); info.TotalView = rdr.GetInt32("TotalView"); info.MonthNum = rdr.GetInt32("MonthNum"); info.MonthMaxNum = rdr.GetInt32("MonthMaxNum"); info.OldMonth = rdr.GetString("OldMonth"); info.MonthMaxDate = rdr.GetString("MonthMaxDate"); info.DayNum = rdr.GetInt32("DayNum"); info.DayMaxNum = rdr.GetInt32("DayMaxNum"); info.OldDay = rdr.GetString("OldDay"); info.DayMaxDate = rdr.GetString("DayMaxDate"); info.HourNum = rdr.GetInt32("HourNum"); info.HourMaxNum = rdr.GetInt32("HourMaxNum"); info.OldHour = rdr.GetString("OldHour"); info.HourMaxTime = rdr.GetString("HourMaxTime"); info.ChinaNum = rdr.GetInt32("ChinaNum"); info.OtherNum = rdr.GetInt32("OtherNum"); info.MasterTimeZone = rdr.GetInt32("MasterTimeZone"); info.Interval = rdr.GetInt32("Interval"); info.IntervalNum = rdr.GetInt32("IntervalNum"); info.OnlineTime = rdr.GetInt32("OnlineTime"); info.VisitRecord = rdr.GetInt32("VisitRecord"); info.KillRefresh = rdr.GetInt32("KillRefresh"); info.RegFields_Fill = rdr.GetString("RegFields_Fill"); info.OldTotalNum = rdr.GetInt32("OldTotalNum"); info.OldTotalView = rdr.GetInt32("OldTotalView"); return(info); }
/// <summary> /// 把实体类转换成键/值对集合 /// </summary> /// <param name="entity"></param> /// <param name="dict"></param> private static void GetParameters(StatInfoListEntity entity, Dictionary <string, object> dict) { dict.Add("ID", entity.ID); dict.Add("StartDate", entity.StartDate); dict.Add("TotalNum", entity.TotalNum); dict.Add("TotalView", entity.TotalView); dict.Add("MonthNum", entity.MonthNum); dict.Add("MonthMaxNum", entity.MonthMaxNum); dict.Add("OldMonth", entity.OldMonth); dict.Add("MonthMaxDate", entity.MonthMaxDate); dict.Add("DayNum", entity.DayNum); dict.Add("DayMaxNum", entity.DayMaxNum); dict.Add("OldDay", entity.OldDay); dict.Add("DayMaxDate", entity.DayMaxDate); dict.Add("HourNum", entity.HourNum); dict.Add("HourMaxNum", entity.HourMaxNum); dict.Add("OldHour", entity.OldHour); dict.Add("HourMaxTime", entity.HourMaxTime); dict.Add("ChinaNum", entity.ChinaNum); dict.Add("OtherNum", entity.OtherNum); dict.Add("MasterTimeZone", entity.MasterTimeZone); dict.Add("Interval", entity.Interval); dict.Add("IntervalNum", entity.IntervalNum); dict.Add("OnlineTime", entity.OnlineTime); dict.Add("VisitRecord", entity.VisitRecord); dict.Add("KillRefresh", entity.KillRefresh); dict.Add("RegFields_Fill", entity.RegFields_Fill); dict.Add("OldTotalNum", entity.OldTotalNum); dict.Add("OldTotalView", entity.OldTotalView); }
/// <summary> /// 获取实体(异步方式) /// </summary> /// <param name="strWhere">参数化查询条件(例如: and Name = @Name )</param> /// <param name="dict">参数的名/值集合</param> /// <returns></returns> public virtual async Task <StatInfoListEntity> GetEntityAsync(string strWhere, Dictionary <string, object> dict = null) { StatInfoListEntity obj = null; string strSQL = "select top 1 * from StatInfoList where 1=1 " + strWhere; using (NullableDataReader reader = await Task.Run(() => _DB.GetDataReader(strSQL, dict))) { if (reader.Read()) { obj = GetEntityFromrdr(reader); } } return(obj); }
/// <summary> /// 更新一条记录(异步方式) /// </summary> /// <param name="entity">实体模型</param> /// <returns></returns> public virtual async Task <bool> UpdateAsync(StatInfoListEntity entity) { Dictionary <string, object> dict = new Dictionary <string, object>(); GetParameters(entity, dict); string strSQL = "Update StatInfoList SET " + "StartDate = @StartDate," + "TotalNum = @TotalNum," + "TotalView = @TotalView," + "MonthNum = @MonthNum," + "MonthMaxNum = @MonthMaxNum," + "OldMonth = @OldMonth," + "MonthMaxDate = @MonthMaxDate," + "DayNum = @DayNum," + "DayMaxNum = @DayMaxNum," + "OldDay = @OldDay," + "DayMaxDate = @DayMaxDate," + "HourNum = @HourNum," + "HourMaxNum = @HourMaxNum," + "OldHour = @OldHour," + "HourMaxTime = @HourMaxTime," + "ChinaNum = @ChinaNum," + "OtherNum = @OtherNum," + "MasterTimeZone = @MasterTimeZone," + "Interval = @Interval," + "IntervalNum = @IntervalNum," + "OnlineTime = @OnlineTime," + "VisitRecord = @VisitRecord," + "KillRefresh = @KillRefresh," + "RegFields_Fill = @RegFields_Fill," + "OldTotalNum = @OldTotalNum," + "OldTotalView = @OldTotalView" + " WHERE " + "ID = @ID"; return(await Task.Run(() => _DB.ExeSQLResult(strSQL, dict))); }
/// <summary> /// 增加或更新一条记录(异步方式) /// </summary> /// <param name="entity">实体模型</param> /// <param name="IsSave">是否增加</param> /// <returns></returns> public virtual async Task <bool> AddOrUpdateAsync(StatInfoListEntity entity, bool IsSave) { return(IsSave ? await AddAsync(entity) : await UpdateAsync(entity)); }
/// <summary> /// 增加或更新一条记录 /// </summary> /// <param name="entity">实体模型</param> /// <param name="IsSave">是否增加</param> /// <returns></returns> public virtual bool AddOrUpdate(StatInfoListEntity entity, bool IsSave) { return(IsSave ? Add(entity) : Update(entity)); }
/// <summary> /// 增加一条记录,返回新的ID号。需要有一个单一主键,并且开启有标识符属性(异步方式) /// </summary> /// <param name="entity">实体模型</param> /// <returns></returns> public virtual async Task <int> InsertAsync(StatInfoListEntity entity) { Dictionary <string, object> dict = new Dictionary <string, object>(); GetParameters(entity, dict); string strSQL = "insert into StatInfoList (" + "StartDate," + "TotalNum," + "TotalView," + "MonthNum," + "MonthMaxNum," + "OldMonth," + "MonthMaxDate," + "DayNum," + "DayMaxNum," + "OldDay," + "DayMaxDate," + "HourNum," + "HourMaxNum," + "OldHour," + "HourMaxTime," + "ChinaNum," + "OtherNum," + "MasterTimeZone," + "Interval," + "IntervalNum," + "OnlineTime," + "VisitRecord," + "KillRefresh," + "RegFields_Fill," + "OldTotalNum," + "OldTotalView) " + "values(" + "@StartDate," + "@TotalNum," + "@TotalView," + "@MonthNum," + "@MonthMaxNum," + "@OldMonth," + "@MonthMaxDate," + "@DayNum," + "@DayMaxNum," + "@OldDay," + "@DayMaxDate," + "@HourNum," + "@HourMaxNum," + "@OldHour," + "@HourMaxTime," + "@ChinaNum," + "@OtherNum," + "@MasterTimeZone," + "@Interval," + "@IntervalNum," + "@OnlineTime," + "@VisitRecord," + "@KillRefresh," + "@RegFields_Fill," + "@OldTotalNum," + "@OldTotalView)"; return(await Task.Run(() => _DB.ReturnID(strSQL, dict))); }