Exemple #1
0
        /// <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);
        }
Exemple #2
0
        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);
        }
Exemple #3
0
        /// <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);
        }
Exemple #4
0
        /// <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);
        }
Exemple #5
0
        /// <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);
        }