Dapper老司机教学

1.新建一个类库:

2.引用Nuget包  我使用的是   <package id="Dapper" version="1.50.2" targetFramework="net45" />   <package id="DapperExtensions" version="1.4.4" targetFramework="net45" />

3.


新建dbconfig数据库连接类:(也可以写到App.config中)

   private readonly string sqlconnection = "Data Source=.;Initial Catalog=FSHouseSpiderData;Integrated Security=True";

这是数据库连接字符串

    public SqlConnection OpenConnection()
        {
            SqlConnection connection = new SqlConnection(sqlconnection);
            connection.Open();
            return connection;
        }

这个是数据库打开方法

4.拷贝我的通用类CommonHelp.cs

    public class CommonHelp : dbConfig
    {
        #region comm
        /// <summary>
        /// 设置更新值Str
        /// </summary>
        /// <param name="updFiledValue"></param>
        /// <returns></returns>
        private string GetSetValuesStr(Dictionary<string, string> updFiledValue)
        {
            string retStr = string.Empty;
            foreach (var item in updFiledValue)
            {
                retStr = retStr + " [" + item.Key + "] =@" + item.Key + ",";
            }

            if (!String.IsNullOrEmpty(retStr))
            {
                retStr = retStr.TrimEnd(',');
            }
            return retStr;
        }

        /// <summary>
        /// 设置条件值Str(防注入啊)
        /// </summary>
        /// <param name="conditionFiledValue"></param>
        /// <returns></returns>
        private string GetSetConditionsStr(Dictionary<string, string> conditionFiledValue)
        {
            string retStr = string.Empty;
            foreach (var item in conditionFiledValue)
            {
                retStr = retStr + " [" + item.Key + "] =@" + item.Value + " and ";
            }

            if (!String.IsNullOrEmpty(retStr))
            {
                retStr = retStr.Substring(0, retStr.LastIndexOf(" and "));
            }
            return retStr;
        }
        /// <summary>
        /// 设置条件值Str防止注入
        /// </summary>
        /// <param name="conditionFiledValue"></param>
        /// <returns></returns>
        private DynamicParameters GetSetParam(Dictionary<string, string> conditionFiledValue)
        {
            var p = new DynamicParameters();
            foreach (var item in conditionFiledValue)
            {
                p.Add(item.Key, item.Key);
            }
            return p;
        }
        #endregion

        #region 增
        /// <summary>
        /// 新增实体表
        /// </summary>
        /// <param name="obj"></param>
        /// <returns></returns>
        public long AddNewEntity<T>(object obj) where T : class,new()
        {
          
            long id = 0;
            try
            {
                using (IDbConnection conn = OpenConnection())
                {
                    id = conn.Insert<T>((T)obj);

                }
            }
            catch (Exception ex)
            {

            }
            return id;
        }

        /// <summary>
        /// 新增实体表
        /// </summary>
        /// <param name="obj"></param>
        /// <returns></returns>
        public string AddNewEntityString<T>(object obj) where T : class,new()
        {

            string id = "";
            try
            {
                using (IDbConnection conn = OpenConnection())
                {
                    id = conn.Insert<T>((T)obj);

                }
            }
            catch (Exception ex)
            {

            }
            return id;
        }
        #endregion


        #region 删

        /// <summary>
        /// 通过id删除某一条信息
        /// </summary>
        /// <param name="tableName"></param>
        /// <param name="id"></param>
        /// <returns></returns>
        public bool DeleteInfoById(string tableName, long id)
        {
            try
            {
                using (IDbConnection conn = OpenConnection())
                {
                    string sqlStr = @"DELETE FROM " + tableName + " WHERE Id=@id";
                    int n = conn.Execute(sqlStr, new { id = id });
                    return n > 0;
                    //使用事物
                    //IDbTransaction transaction = conn.BeginTransaction();
                    //int row = conn.Execute(sqlStr, new { id = id }, transaction, null, null);
                    //row += conn.Execute(sqlStr, new { id = id }, transaction, null, null);
                    //transaction.Commit();
                }
            }
            catch (Exception ex)
            {
                //log
                return false;
            }
        }
        /// <summary>
        /// 通过某个属性删除某一条信息
        /// </summary>
        /// <param name="tableName"></param>
        /// <param name="field"></param>
        /// <param name="values"></param>
        /// <returns></returns>
        public bool DeleteInfoByConditionField(string tableName, string field, string values)
        {
            bool flag = true;
            try
            {
                using (IDbConnection conn = OpenConnection())
                {
                    string sqlStr = @"DELETE " + tableName + " WHERE " + field + "=@values";
                    int n = conn.Execute(sqlStr, new { values = values });

                    return n > 0;
                }
            }
            catch (Exception ex)
            {

                flag = false;
            }
            return flag;
        }

        /// <summary>
        /// 根据多个条件删除
        /// </summary>
        /// <param name="tableName"></param>
        /// <param name="conditionFiledValue"></param>
        /// <returns></returns>
        public bool DeleteInfoByConditionFields(string tableName, Dictionary<string, string> conditionFiledValue)
        {
            try
            {
                using (IDbConnection conn = OpenConnection())
                {
                    string strSetConditions = this.GetSetConditionsStr(conditionFiledValue);
                    string sqlStr = @"DELETE FROM [" + tableName + "] where " + strSetConditions;
                    int n = conn.Execute(sqlStr, this.GetSetParam(conditionFiledValue));
                    return n > 0;
                }
            }
            catch (Exception ex)
            {
                return false;
            }
        }
        /// <summary>
        /// 根据sql删除
        /// </summary>
        /// <param name="tableName"></param>
        /// <param name="sql"></param>
        /// <returns></returns>
        public bool DeleteTableBySql(string tableName, string sql)
        {
            bool bl = true;
            try
            {
                using (IDbConnection conn = OpenConnection())
                {
                    conn.Execute(sql);
                    conn.Close();
                }
            }
            catch (Exception ex)
            {

                bl = false;
            }
            return bl;
        }
        #endregion


        #region 改
        /// <summary>
        /// 更新实体表
        /// </summary>
        /// <param name="obj"></param>
        /// <returns></returns>
        public bool UpdateEntity(object obj)
        {
            bool flag = false;
            try
            {

                using (IDbConnection conn = OpenConnection())
                {
                
                }
            }
            catch (Exception ex)
            {
                flag = false;
            }
            return flag;

        }

        /// <summary>
        /// 更新某个字段
        /// </summary>
        /// <param name="tableName">表名称</param>
        /// <param name="field">字段</param>
        /// <param name="values">字段值</param>
        /// <returns></returns>
        public bool UpdateInfoOneAttribute(string tableName, string field, string values, string conditionFied, string conditionValues)
        {
            try
            {
                using (IDbConnection conn = OpenConnection())
                {
                    string sqlStr = @"update " + tableName + " set " + field + "=" + values + " where " + conditionFied + "=" + conditionValues;

                    bool result = conn.Update(sqlStr);
                    conn.Close();
                    return result;
                }
            }
            catch (Exception ex)
            {

                return false;
            }
        }

        /// <summary>
        /// 根据多个条件,更新多个值
        /// </summary>
        /// <param name="tableName"></param>
        /// <param name="updFiledValue"></param>
        /// <param name="conditionFiledValue"></param>
        /// <returns></returns>
        public bool UpdateInfoByAttributes(string tableName, Dictionary<string, string> updFiledValue, Dictionary<string, string> conditionFiledValue)
        {
            try
            {
                using (IDbConnection conn = OpenConnection())
                {
                    string strSetValues = this.GetSetValuesStr(updFiledValue);
                    string strSetConditions = this.GetSetConditionsStr(conditionFiledValue);
                    string sqlStr = @"update [" + tableName + "] set " + strSetValues + " where " + strSetConditions;
                    foreach (var item in updFiledValue)
                    {
                        conditionFiledValue.Add(item.Key, item.Value);
                    }
                    int result = conn.Execute(sqlStr, GetSetParam(conditionFiledValue));
                    conn.Close();
                    return result > 0;
                }
            }
            catch (Exception ex)
            {

                return false;
            }
        }


        /// <summary>
        /// 根据sql更新
        /// </summary>
        /// <param name="tableName"></param>
        /// <param name="sql"></param>
        /// <returns></returns>
        public bool UpDateTableBySql(string tableName, string sql)
        {
            bool bl = true;
            try
            {
                using (IDbConnection conn = OpenConnection())
                {
                    conn.Execute(sql);
                    conn.Close();
                }
            }
            catch (Exception ex)
            {

                bl = false;
            }
            return bl;
        }
        #endregion


        #region 查
        /// <summary>
        /// 通过id获得某个表的所有信息
        /// </summary>
        /// <param name="tableName"></param>
        /// <param name="id"></param>
        /// <returns></returns>
        public IList<T> GetEntytyInfoById<T>(string tableName, long id) where T : new()
        {
            IList<T> comList = new List<T>();
            try
            {
                using (IDbConnection conn = OpenConnection())
                {
                    string sql = @"select * from [" + tableName + "]";
                    if (id > 0)
                    {
                        sql = @"select * from [" + tableName + "]   where Id=@id";
                    }

                    if (id > 0)
                    {
                        comList = conn.Query<T>(sql, new { id = id }).ToList();
                    }
                    else
                    {
                        comList = conn.Query<T>(sql).ToList();
                    }

                    conn.Close();

                }
            }
            catch (Exception ex)
            {
                //log
            }
            return comList;
        }

        /// <summary>
        /// 通过某个字段获得表的所有信息
        /// </summary>
        /// <param name="tableName"></param>
        /// <param name="id"></param>
        /// <returns></returns>
        public IList<T> GetEntytyInfoByQuery<T>(string tableName, string field, string values) where T : new()
        {
            IList<T> comList = new List<T>();
            try
            {
                using (IDbConnection conn = OpenConnection())
                {
                    string sql = @"select * from [" + tableName + "]   where [" + field + "] =@field order by " + field + " desc";
                    comList = conn.Query<T>(sql, new { field = values }).ToList();
                    conn.Close();
                }
            }
            catch (Exception ex)
            {
                //log
            }
            return comList;
        }

        /// <summary>
        /// 根据Id 获得实体
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="Id"></param>
        /// <returns></returns>
        public T GetEntityById<T>(string tableName, long Id) where T : new()
        {
            try
            {
                using (IDbConnection conn = OpenConnection())
                {
                    string sql = @"select * from [" + tableName + "]   where Id =@id order by Id desc";
                    T p = conn.Query<T>(sql, new { id = Id }).SingleOrDefault();
                    conn.Close();
                    return p;
                }

            }
            catch (Exception ex)
            {

                return new T();
            }

        }

        /// <summary>
        /// 根据Id查询实体类
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="tableName"></param>
        /// <param name="Id"></param>
        /// <returns></returns>
        public T GetEntityByConditionField<T>(string tableName, string field, string values) where T : new()
        {
            IList<T> comList = new List<T>();
            try
            {
                using (IDbConnection conn = OpenConnection())
                {
                    string sql = @"select * from [" + tableName + "]   where " + field + "=@field";
                    T p = conn.Query<T>(sql, new { field = field }).SingleOrDefault();
                    conn.Close();
                    return p;
                }
            }
            catch (Exception ex)
            {
                //
            }
            if (comList.Count > 0)
            {
                return comList[0];
            }
            else
            {
                return new T();
            }
        }
        /// <summary>
        /// 根据sql 查询
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="sql"></param>
        /// <returns></returns>
        public IList<T> GetEntytyInfoBySQL<T>(string sql) where T : new()
        {
            IList<T> comList = new List<T>();
            try
            {
                using (IDbConnection conn = OpenConnection())
                {

                    comList = conn.Query<T>(sql).ToList();
                    conn.Close();
                }
            }
            catch (Exception ex)
            {
                //log
            }
            return comList;
        }


        /// <summary>
        /// 获得实体类的单个值
        /// </summary>
        /// <param name="tableName">表名称</param>
        /// <param name="selectValue">要查询的值</param>
        /// <param name="field">条件字段</param>
        /// <param name="values">条件值</param>
        /// <returns></returns>
        public string GetEntyOneValue(string tableName, string selectValue, string field, string values)
        {
            string str = string.Empty;
            try
            {
                using (IDbConnection conn = OpenConnection())
                {
                    string sql = @"select " + selectValue + " cs from [" + tableName + "]   where " + field + "=@field";


                    str = conn.QueryFirst(sql, new { field = values });
                    conn.Close();
                }
            }
            catch (Exception ex)
            {
                //log
            }
            return str;
        }


        /// <summary>
        /// 查询表中数据
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="tableName"></param>
        /// <param name="orderby"></param>
        /// <param name="desc"></param>
        /// <returns></returns>
        public IList<T> GetEntityInfoList<T>(string tableName)
        {
            return this.GetEntityInfoList<T>(tableName, string.Empty, true);
        }

        /// <summary>
        /// 查询表中数据
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="tableName"></param>
        /// <param name="orderby"></param>
        /// <param name="desc"></param>
        /// <returns></returns>
        public IList<T> GetEntityInfoList<T>(string tableName, string orderby, bool desc)
        {
            IList<T> comList = new List<T>();
            try
            {
                using (IDbConnection conn = OpenConnection())
                {
                    string sql = @"select * from [" + tableName + "]";
                    if (!String.IsNullOrEmpty(orderby))
                    {
                        sql = @" select * from [" + tableName + "]   Order by [" + orderby + "] ";
                        if (desc == true)
                        {
                            sql = sql + " Desc";
                        }
                    }

                    comList = conn.Query<T>(sql).ToList();


                    conn.Close();
                }
            }
            catch (Exception ex)
            {
                //log
            }
            return comList;
        }

        /// <summary>
        /// 根据字段按照In查询
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="tableName"></param>
        /// <param name="filed"></param>
        /// <param name="inValues"></param>
        /// <returns></returns>
        public IList<T> GetEntityInfoByFiledIn<T>(string tableName, string filed, string inValues) where T : new()
        {
            IList<T> comList = new List<T>();
            try
            {
                using (IDbConnection conn = OpenConnection())
                {
                    string sql = @"select * from [" + tableName + "]   where [" + filed + "] in (" + inValues + ") order by id desc";

                    comList = conn.Query<T>(sql).ToList();
                    conn.Close();
                }
            }
            catch (Exception ex)
            {
                //log
            }
            return comList;
        }


        /// <summary>
        /// 获得实体类的单个值--sql中必须将要查到的值重命名为cs
        /// </summary>
        /// <returns></returns>
        public string GetEntyOneValue(string sql, string tableName)
        {
            string str = string.Empty;
            try
            {
                using (IDbConnection conn = OpenConnection())
                {

                    str = conn.QueryFirst(sql);
                    conn.Close();
                }
            }
            catch (Exception ex)
            {
                //log
            }
            return str;
        }

        #endregion
    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值