예제 #1
0
        /// <summary>
        /// 根据条件获取指定的列
        /// </summary>
        /// <param name="entity"></param>
        /// <param name="columns"></param>
        /// <returns></returns>
        public SqlDataReader GetRows(daEntity entity, string[] columns)
        {
            if (null == entity || 0 == entity.Count)
            {
                throw new Exception("实体类不能为空!");
            }
            string[]      columnNames      = _GetColumns(entity);
            string[]      columnValiues    = _GetValues(entity);
            int           columnCount      = columnNames.Length;
            StringBuilder queryColumns     = new StringBuilder("");
            int           queryColumnCount = columns.Length;

            for (int i = 0; i < queryColumnCount; ++i)
            {
                queryColumns.Append(" " + columns[i] + ",");
            }
            queryColumns.Remove(queryColumns.Length - 1, 1);
            StringBuilder getSql = new StringBuilder("SELECT " + queryColumns.ToString() + " FROM ");

            getSql.Append(_CurrentTable + " WHERE ");
            for (int i = 0; i < columnCount; ++i)
            {
                getSql.Append(" " + columnNames[i] + "='" + columnValiues[i] + "' AND");
            }
            getSql.Remove(getSql.Length - 3, 3);


            return(SqlHelper.ExecuteReader(_ConnectionString, CommandType.Text, getSql.ToString()));
        }
예제 #2
0
        /// <summary>
        /// 更新
        /// </summary>
        /// <param name="entity"></param>
        /// <returns></returns>
        public int Update(daEntity entity)
        {
            if (null == entity || 0 == entity.Count)
            {
                throw new Exception("实体类不能为空!");
            }
            string[]      columnNames   = _GetColumns(entity);
            string[]      columnValiues = _GetValues(entity);
            int           columnCount   = columnNames.Length;
            StringBuilder updateSql     = new StringBuilder(" UPDATE " + _CurrentTable + " SET ");

            for (int i = 0; i < columnCount; ++i)
            {
                if (_PrimaryKey == columnNames[i])
                {
                    continue;
                }
                else
                {
                    updateSql.Append(" " + columnNames[i] + "='" + columnValiues[i] + "',");
                }
            }
            updateSql.Remove(updateSql.Length - 1, 1);
            updateSql.Append(" WHERE " + _PrimaryKey + "='" + entity[_PrimaryKey] + "' ");

            int updatedRows = SqlHelper.ExecuteNonQuery(_ConnectionString, CommandType.Text, updateSql.ToString());

            return(updatedRows);
        }
예제 #3
0
        /// <summary>
        /// 获取实体对象的列值
        /// </summary>
        /// <param name="entity">实体对象</param>
        /// <returns></returns>
        private string[] _GetValues(daEntity entity)
        {
            StringBuilder valuesbuilder = new StringBuilder("");

            foreach (string key in entity.Keys)
            {
                valuesbuilder.Append(entity[key] + ",");
            }

            return(valuesbuilder.Remove(valuesbuilder.Length - 1, 1).ToString().Split(','));
        }
예제 #4
0
        /// <summary>
        /// 获取实体类的列名
        /// </summary>
        /// <param name="entity">实体对象</param>
        /// <returns></returns>
        private string[] _GetColumns(daEntity entity)
        {
            StringBuilder keysbuilder = new StringBuilder("");

            foreach (string key in entity.Keys)
            {
                keysbuilder.Append(key + ",");
            }

            return(keysbuilder.Remove(keysbuilder.Length - 1, 1).ToString().Split(','));
        }
예제 #5
0
        /// <summary>
        /// 统计符合条件的有多少行
        /// </summary>
        /// <param name="entity"></param>
        /// <returns></returns>
        public int CountRows(daEntity entity)
        {
            if (null == entity || 0 == entity.Count)
            {
                throw new Exception("实体类不能为空!");
            }
            string[]      columnNames  = _GetColumns(entity);
            string[]      columnValues = _GetValues(entity);
            int           columnCount  = columnNames.Length;
            StringBuilder countSql     = new StringBuilder("SELECT COUNT(1) FROM " + _CurrentTable + " WHERE ");

            for (int i = 0; i < columnCount; ++i)
            {
                countSql.Append(" " + columnNames[i] + "='" + columnValues[i] + "' AND");
            }
            countSql.Remove(columnValues.Length - 3, 3);

            return((int)SqlHelper.ExecuteScalar(_ConnectionString, CommandType.Text, countSql.ToString()));
        }
예제 #6
0
        /// <summary>
        /// 删除
        /// </summary>
        /// <param name="entity"></param>
        /// <returns></returns>
        public int Delete(daEntity entity)
        {
            if (null == entity || 0 == entity.Count)
            {
                throw new Exception("实体类不能为空!");
            }
            string[]      columnNames   = _GetColumns(entity);
            string[]      columnValiues = _GetValues(entity);
            StringBuilder deleteSql     = new StringBuilder(" DELETE " + _CurrentTable + " WHERE ");
            int           columnCount   = columnNames.Length;

            for (int i = 0; i < columnCount; ++i)
            {
                deleteSql.Append(" " + columnNames[i] + "='" + columnValiues[i] + "',");
            }
            deleteSql.Remove(deleteSql.Length - 1, 1);

            int deletedRows = SqlHelper.ExecuteNonQuery(_ConnectionString, CommandType.Text, deleteSql.ToString());

            return(deletedRows);
        }