/// <summary> /// 判断是否插入的记录是否存在 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="model"></param> /// <param name="ignoreAutoIm">忽略自动增长主键</param> /// <returns></returns> public bool IsExist <T>(T model, bool ignoreAutoIm = false) { ClassTableInfo cti = ClassTableInfoFactory.CreateClassTableInfo(model, Perfix); if (cti.PrimaryKeys.Count > 0) { string sql = string.Format(" select count(*) from {0} ", cti.TableName); sql += " where "; var filterkeys = cti.PrimaryKeys; if (ignoreAutoIm) { filterkeys = cti.PrimaryKeys.Where(k => cti.AutoIncreFields.Count(c => c.Key == k.Key) <= 0).ToList(); } if (filterkeys.Count > 0) { List <KeyValuePair <string, object> > parameters = new List <KeyValuePair <string, object> >(); string where = string.Join(" AND ", filterkeys.Select(k => k.Key + "=" + GetParameterName(k.Key))); parameters = filterkeys.Select(k => new KeyValuePair <string, object>(GetParameterName(k.Key), k.Value)) .ToList(); sql += where; return(((int)ExecuteScalar(sql, parameters.ToArray())) > 0); } else { return(false); } } return(false); }
public bool Insert <T>(T model, string where, IDbTransaction transaction = null, params KeyValuePair <string, object>[] parameters) { ClassTableInfo cti = ClassTableInfoFactory.CreateClassTableInfo(model, Perfix); string sql = string.Format(" insert {0} ", cti.TableName); if (!IsExist(where, cti.TableName, parameters)) { string fieldstr = string.Join(",", cti.Fields.Select(k => k.Key)); string valuestr = string.Join(",", cti.Fields.Select(k => GetParameterName(k.Key))); sql += string.Format(" ({0}) values ({1}) ", fieldstr, valuestr); var parm = cti.Fields.Select(k => new KeyValuePair <string, object>(GetParameterName(k.Key), k.Value)); return(ExceuteSql(sql, transaction, parm.ToArray()) > 0); } return(false); }
/// <summary> /// 删除 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="model"></param> /// <param name="transaction"></param> /// <returns></returns> public bool Delete <T>(T model, IDbTransaction transaction = null) { ClassTableInfo cti = ClassTableInfoFactory.CreateClassTableInfo(model, Perfix); if (cti.PrimaryKeys.Count > 0) { string sql = "delete from " + cti.TableName; sql += " where "; string where = string.Join(" AND ", cti.PrimaryKeys.Select(k => k.Key + "=" + GetParameterName(k.Key))); var parm = cti.PrimaryKeys.Select(k => new KeyValuePair <string, object>(GetParameterName(k.Key), k.Value)) .ToArray(); sql += where; return(ExceuteSql(sql, transaction, parm.ToArray()) > 0); } return(false); }
/// <summary> /// 插入 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="model"></param> /// <param name="transaction">事务</param> /// <returns></returns> public bool Insert <T>(T model, IDbTransaction transaction = null) { bool result = false; List <KeyValuePair <string, object> > primarykeys = new List <KeyValuePair <string, object> >(); ClassTableInfo cti = ClassTableInfoFactory.CreateClassTableInfo(model, Perfix); string sql = string.Format(" insert {0} ", cti.TableName); // 判断记录是否存在 if (!IsExist(model, true)) { string fieldstr = string.Join(",", cti.Fields.Select(k => k.Key)); string valuestr = string.Join(",", cti.Fields.Select(k => GetParameterName(k.Key))); sql += string.Format(" ({0}) values ({1}) ", fieldstr, valuestr); var parm = cti.Fields.Select(k => new KeyValuePair <string, object>(GetParameterName(k.Key), k.Value)); result = ExceuteSql(sql, transaction, parm.ToArray()) > 0; } return(result); }
/// <summary> /// 修改 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="model"></param> /// <param name="transaction"></param> /// <returns></returns> public bool Update <T>(T model, IDbTransaction transaction = null) { ClassTableInfo cti = ClassTableInfoFactory.CreateClassTableInfo(model, Perfix); if (cti.PrimaryKeys.Count > 0) { string sql = ""; sql += "update " + cti.TableName; sql += " set "; string fields = string.Join(",", cti.Fields.Select(k => k.Key + "=" + GetParameterName(k.Key))); var param = cti.Fields.Select(k => new KeyValuePair <string, object>(GetParameterName(k.Key), k.Value)).ToList(); sql += fields; string where = string.Join(" AND ", cti.PrimaryKeys.Select(k => k.Key + "=" + GetParameterName(k.Key))); var wherep = cti.PrimaryKeys.Select(k => new KeyValuePair <string, object>(GetParameterName(k.Key), k.Value)) .ToArray(); sql += " where "; sql += where; param.AddRange(wherep); return(ExceuteSql(sql, transaction, param.ToArray()) > 0); } return(false); }