/// <summary> /// 增加一条记录,返回新的ID号。需要有一个单一主键,并且开启有标识符属性(异步方式) /// </summary> /// <param name="entity">实体模型</param> /// <returns></returns> public virtual async Task <int> InsertAsync(StatVisitorEntity entity) { Dictionary <string, object> dict = new Dictionary <string, object>(); GetParameters(entity, dict); string strSQL = "insert into StatVisitor (" + "VTime," + "Ip," + "Address," + "System," + "Browser," + "Screen," + "Color," + "Referer," + "Timezone) " + "values(" + "@VTime," + "@Ip," + "@Address," + "@System," + "@Browser," + "@Screen," + "@Color," + "@Referer," + "@Timezone)"; return(await Task.Run(() => _DB.ReturnID(strSQL, dict))); }
/// <summary> /// 增加一条记录 /// </summary> /// <param name="entity">实体模型</param> /// <returns></returns> public virtual bool Add(StatVisitorEntity entity) { Dictionary <string, object> dict = new Dictionary <string, object>(); GetParameters(entity, dict); string strSQL = "insert into StatVisitor (" + "VTime," + "Ip," + "Address," + "System," + "Browser," + "Screen," + "Color," + "Referer," + "Timezone) " + "values(" + "@VTime," + "@Ip," + "@Address," + "@System," + "@Browser," + "@Screen," + "@Color," + "@Referer," + "@Timezone)"; return(_DB.ExeSQLResult(strSQL, dict)); }
/// <summary> /// 把实体类转换成键/值对集合 /// </summary> /// <param name="entity"></param> /// <param name="dict"></param> private static void GetParameters(StatVisitorEntity entity, Dictionary <string, object> dict) { dict.Add("ID", entity.ID); dict.Add("VTime", entity.VTime); dict.Add("Ip", entity.Ip); dict.Add("Address", entity.Address); dict.Add("System", entity.System); dict.Add("Browser", entity.Browser); dict.Add("Screen", entity.Screen); dict.Add("Color", entity.Color); dict.Add("Referer", entity.Referer); dict.Add("Timezone", entity.Timezone); }
/// <summary> /// 获取实体(异步方式) /// </summary> /// <param name="strWhere">参数化查询条件(例如: and Name = @Name )</param> /// <param name="dict">参数的名/值集合</param> /// <returns></returns> public virtual async Task <StatVisitorEntity> GetEntityAsync(string strWhere, Dictionary <string, object> dict = null) { StatVisitorEntity obj = null; string strSQL = "select top 1 * from StatVisitor 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="rdr"></param> /// <returns></returns> private static StatVisitorEntity GetEntityFromrdr(NullableDataReader rdr) { StatVisitorEntity info = new StatVisitorEntity(); info.ID = rdr.GetInt32("ID"); info.VTime = rdr.GetNullableDateTime("VTime"); info.Ip = rdr.GetString("Ip"); info.Address = rdr.GetString("Address"); info.System = rdr.GetString("System"); info.Browser = rdr.GetString("Browser"); info.Screen = rdr.GetString("Screen"); info.Color = rdr.GetString("Color"); info.Referer = rdr.GetString("Referer"); info.Timezone = rdr.GetInt32("Timezone"); return(info); }
/// <summary> /// 更新一条记录(异步方式) /// </summary> /// <param name="entity">实体模型</param> /// <returns></returns> public virtual async Task <bool> UpdateAsync(StatVisitorEntity entity) { Dictionary <string, object> dict = new Dictionary <string, object>(); GetParameters(entity, dict); string strSQL = "Update StatVisitor SET " + "VTime = @VTime," + "Ip = @Ip," + "Address = @Address," + "System = @System," + "Browser = @Browser," + "Screen = @Screen," + "Color = @Color," + "Referer = @Referer," + "Timezone = @Timezone" + " 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(StatVisitorEntity 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(StatVisitorEntity entity, bool IsSave) { return(IsSave ? Add(entity) : Update(entity)); }