使用dapper进行参数化查询

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用dapper进行参数化查询相关的知识,希望对你有一定的参考价值。

使用Dapper操作Mysql数据库中我介绍了使用dapper进行CURD基本操作,但在示例代码中参数虽然也是通过@开头,但其实不是真正意义的参数化查询,而是拼接sql,这种方式不利于防止sql注入,所以在Dappe中可以使用DynamicParameters动态参数集合添加参数,从而实现dapper下的参数化查询;

示例代码

            using (var connection = new mysqlConnection(connstr))
            {
                //声明动态参数
                DynamicParameters Parameters = new DynamicParameters();
                //开始事务
                IDbTransaction transaction = connection.BeginTransaction();
                try
                {
                    int cnt = 0;
                    string sQuery = "Delete FROM user " + "WHERE [email protected]";
                    //添加参数
                    Parameters.Add("Id", id);
                    connection.Execute(sQuery, Parameters, transaction, null, null);
                    //提交事务
                    transaction.Commit();
                    return true;
                }
                catch (Exception ex)
                {
                    //出现异常,事务Rollback
                    transaction.Rollback();
                    return false;
                    throw new Exception(ex.Message);
                }
            }

 

以上是关于使用dapper进行参数化查询的主要内容,如果未能解决你的问题,请参考以下文章

我需要参数化基本查询吗

c# dapper mysql like 参数化

使用 Informix 和 Dapper 向查询添加参数失败并出现语法异常

Sqlite 参数化 模糊查询 解决方案

强制参数,Dapper 和 System.Data.SqlClient.SqlException

DB2 - 使用带有字符串数组参数的 Dapper 选择查询将不会返回正确的结果