Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 将参数传递给Oracle数据库的Dapper Select查询_Asp.net_Oracle_Select_Model View Controller_Dapper - Fatal编程技术网

Asp.net 将参数传递给Oracle数据库的Dapper Select查询

Asp.net 将参数传递给Oracle数据库的Dapper Select查询,asp.net,oracle,select,model-view-controller,dapper,Asp.net,Oracle,Select,Model View Controller,Dapper,我试图为Oracle数据库中的select查询将参数传递给Dapper,但不知何故,它不适用于“:”标识符 使用字符串连接可以很好地工作: string req=“从联系人中选择*,其中code_commite=”; req+=user.Comite+“'和(pers_name LIKE'”; req+=姓名+“%”或类似于“+”姓名+“%”的姓氏; contacts=db_conn.Query(req.ToList() 但不能通过以下简洁的参数: string comite = "'" + u

我试图为Oracle数据库中的select查询将参数传递给Dapper,但不知何故,它不适用于“:”标识符

使用字符串连接可以很好地工作:
string req=“从联系人中选择*,其中code_commite=”;
req+=user.Comite+“'和(pers_name LIKE'”;
req+=姓名+“%”或类似于“+”姓名+“%”的姓氏;
contacts=db_conn.Query(req.ToList()

但不能通过以下简洁的参数:

string comite = "'" + user.Comite + "'";//e.g. comite = '120'
name = "'" + name + "%'";//e.g. name = 'John%'
contacts = db_conn.Query<Contact>("SELECT * FROM contact WHERE code_comite = :code_comite AND (pers_nom LIKE :search OR pers_prenom LIKE :search)", new { code_comite = comite, search = name }).ToList();
string comite=“””+user.comite+”//e、 g.comite='120'
name=“”+name+“%”//e、 g.姓名='John%'
contacts=db_conn.Query(“从联系人中选择*,其中code_comite=:code_comite和(pers_nom LIKE:search或pers_prenom LIKE:search)”,新的{code_comite=comite,search=name});

它应该使用相同的字符串,但第二个示例没有返回任何内容。

传递参数时,不需要在值周围加引号。相反,这会导致失败,因为引擎将搜索包含您的值并用文字引号括起来的列。
只需使用纯文本

 string comite = user.Comite;
 name = name + "%";
 contacts = db_conn.Query<Contact>(@"SELECT * FROM contact 
          WHERE code_comite = :code_comite 
            AND (pers_nom LIKE :search 
                 OR pers_prenom LIKE :search)", 
  new { code_comite = comite, search = name }).ToList();
string comite=user.comite;
名称=名称+“%”;
联系人=数据库连接查询(@“从联系人中选择*)
其中code\u comite=:code\u comite
和(例如:搜索)
或类似搜索的个人信息“,
新建{code_comite=comite,search=name}).ToList();