using System;
using System.Data;
using System.Text;
using System.Data.SqlClient;

namespace Basic.DAL
{
    /// <summary>
    /// 数据访问层bed_class
    /// </summary>
    public partial class bed_class
    {
        #region 原始的
        /// <summary>
        /// 增加一条数据
        /// </summary>
        public int Add(Basic.Model.bed_class model)
        {
            StringBuilder strSql = new StringBuilder();
            strSql.Append("insert into tb_bed_class(");
            strSql.Append("paixu,title,state,yongliao,gongfei)");
            strSql.Append(" values (");
            strSql.Append("@paixu,@title,@state,@yongliao,@gongfei)");
            strSql.Append(";select @@IDENTITY");

            SqlParameter[] parameters = { 
                new SqlParameter("@paixu", SqlDbType.Int,10),
                new SqlParameter("@title", SqlDbType.NVarChar,255),
                new SqlParameter("@state", SqlDbType.Int,10),
                new SqlParameter("@yongliao", SqlDbType.Decimal,18),
                new SqlParameter("@gongfei", SqlDbType.Decimal,18)};
            parameters[0].Value = model.paixu;
            parameters[1].Value = model.title;
            parameters[2].Value = model.state;
            parameters[3].Value = model.yongliao;
            parameters[4].Value = model.gongfei;

            object obj = DbHelperSQL.GetSingle(strSql.ToString(), parameters);
            if (obj == null)
            {
                return 0;
            }
            else
            {
                return Convert.ToInt32(obj);
            }
        }

        /// <summary>
        /// 更新一条数据
        /// </summary>
        public bool Update(Basic.Model.bed_class model)
        {
            StringBuilder strSql = new StringBuilder();
            strSql.Append("update tb_bed_class set ");
            strSql.Append("paixu=@paixu,");
            strSql.Append("title=@title,");
            strSql.Append("state=@state,");
            strSql.Append("yongliao=@yongliao,");
            strSql.Append("gongfei=@gongfei");
            strSql.Append(" where id=@id");
            SqlParameter[] parameters = { 
                new SqlParameter("@paixu", SqlDbType.Int,10),
                new SqlParameter("@title", SqlDbType.NVarChar,255),
                new SqlParameter("@state", SqlDbType.Int,10),
                new SqlParameter("@yongliao", SqlDbType.Decimal,18),
                new SqlParameter("@gongfei", SqlDbType.Decimal,18),
                new SqlParameter("@id", SqlDbType.Int,4)};
            parameters[0].Value = model.paixu;
            parameters[1].Value = model.title;
            parameters[2].Value = model.state;
            parameters[3].Value = model.yongliao;
            parameters[4].Value = model.gongfei;
            parameters[5].Value = model.id;
            int rows = DbHelperSQL.ExecuteSql(strSql.ToString(), parameters);
            if (rows > 0)
            {
                return true;
            }
            else
            {
                return false;
            }
        }

        /// <summary>
        /// 删除一条数据
        /// </summary>
        public bool Delete(int id)
        {
            StringBuilder strSql = new StringBuilder();
            strSql.Append("delete from  tb_bed_class");
            strSql.Append(" where id=@id");
            SqlParameter[] parameters = { 
                new SqlParameter("@id", SqlDbType.Int,4)};
            parameters[0].Value = id;
            int rows = DbHelperSQL.ExecuteSql(strSql.ToString(), parameters);
            if (rows > 0)
            {
                return true;
            }
            else
            {
                return false;
            }
        }

        /// <summary>
        /// 得到一个对象实体
        /// </summary>
        public Basic.Model.bed_class GetModel(int id)
        {
            StringBuilder strSql = new StringBuilder();
            strSql.Append("select top 1 id,paixu,title,state,yongliao,gongfei from tb_bed_class");
            strSql.Append(" where id=@id");
            SqlParameter[] parameters = { 
                new SqlParameter("@id", SqlDbType.Int,4)};
            parameters[0].Value = id;
            Basic.Model.bed_class model = new Basic.Model.bed_class();
            DataSet ds = DbHelperSQL.Query(strSql.ToString(), parameters);
            if (ds.Tables[0].Rows.Count > 0)
            {
                if (!string.IsNullOrEmpty(ds.Tables[0].Rows[0]["id"].ToString()))
                {
                    model.id = int.Parse(ds.Tables[0].Rows[0]["id"].ToString());
                }
                if (!string.IsNullOrEmpty(ds.Tables[0].Rows[0]["paixu"].ToString()))
                {
                    model.paixu = int.Parse(ds.Tables[0].Rows[0]["paixu"].ToString());
                }
                if (!string.IsNullOrEmpty(ds.Tables[0].Rows[0]["title"].ToString()))
                {
                    model.title = ds.Tables[0].Rows[0]["title"].ToString();
                }
                if (!string.IsNullOrEmpty(ds.Tables[0].Rows[0]["state"].ToString()))
                {
                    model.state = int.Parse(ds.Tables[0].Rows[0]["state"].ToString());
                }
                if (!string.IsNullOrEmpty(ds.Tables[0].Rows[0]["yongliao"].ToString()))
                {
                    model.yongliao = decimal.Parse(ds.Tables[0].Rows[0]["yongliao"].ToString());
                }
                if (!string.IsNullOrEmpty(ds.Tables[0].Rows[0]["gongfei"].ToString()))
                {
                    model.gongfei = decimal.Parse(ds.Tables[0].Rows[0]["gongfei"].ToString());
                }
                return model;
            }
            else
            {
                return null;
            }
        }

        /// <summary>
        /// 获得前几行数据
        /// </summary>
        public DataSet GetList(int Top, string strWhere, string filedOrder)
        {
            StringBuilder strSql = new StringBuilder();
            strSql.Append("select ");
            if (Top > 0)
            {
                strSql.Append(" top " + Top.ToString());
            }
            strSql.Append("id,paixu,title,state,yongliao,gongfei");
            strSql.Append(" from tb_bed_class");
            if (strWhere.Trim() != "")
            {
                strSql.Append(" where " + strWhere);
            }
            strSql.Append(" order by " + filedOrder);
            return DbHelperSQL.Query(strSql.ToString());
        }

        /// <summary>
        /// 是否存在该记录
        /// </summary>
        public bool Exists(int id)
        {
            StringBuilder strSql = new StringBuilder();
            strSql.Append("select count(1) from tb_bed_class");
            strSql.Append(" where id=@id");
            SqlParameter[] parameters = {
                new SqlParameter("@id", SqlDbType.Int,4)};
            parameters[0].Value = id;

            return DbHelperSQL.Exists(strSql.ToString(), parameters);
        }
        #endregion

        //后加的==============================================================================================================================
        /// <summary>
        /// 获得查询分页数据
        /// </summary>
        public DataSet GetList(string _strWhere, string _orderby, int _pageSize, int _page, out int recordCount)
        {
            BasicPage bp = new BasicPage();
            StringBuilder str_Sql = new StringBuilder();
            str_Sql.Append("select top " + _pageSize + " * from tb_bed_class");
            str_Sql.Append(" where ");
            str_Sql.Append(_strWhere);
            str_Sql.Append(" and id not in ");
            str_Sql.Append(" ( ");
            str_Sql.Append(" select top " + (_page - 1) * _pageSize + " id from tb_bed_class ");
            str_Sql.Append(" where ");
            str_Sql.Append(_strWhere);
            str_Sql.Append(" order by ");
            str_Sql.Append(_orderby);
            str_Sql.Append(" ) ");
            str_Sql.Append(" order by ");
            str_Sql.Append(_orderby);
            DataSet dst = bp.SelectDataBase("tb_bed_class", str_Sql.ToString());
            //
            recordCount = totlePage(showTotal(_strWhere), _pageSize);
            return dst;
        }

        //总页数
        public int totlePage(int Total, int PageSize)
        {
            if (Total % PageSize == 0)
            {
                return Total / PageSize;
            }
            else
            {
                return Total / PageSize + 1;
            }
        }

        //总条数
        protected int showTotal(string strSql)
        {
            BasicPage bp = new BasicPage();
            int intTotal = 0;
            SqlDataReader myread = bp.getRead("select count(id) as CountId from tb_bed_class where " + strSql);
            if (myread.Read())
            {
                intTotal = Convert.ToInt32(myread["CountId"].ToString());
            }
            myread.Close();
            return intTotal;
        }

        /// <summary>
        /// 修改一列数据
        /// </summary>
        public void UpdateField(int id, string strValue)
        {
            StringBuilder strSql = new StringBuilder();
            strSql.Append("update tb_bed_class set " + strValue);
            strSql.Append(" where id=" + id);
            DbHelperSQL.ExecuteSql(strSql.ToString());
        }
    }
}