2011-09-22 54 views
10

我想使用Dapper執行以下查詢,它目前不會返回預期的結果(我認爲它必須將@pName參數視爲單引號內的文本文本):SQL語句中使用Dapper的參數化LIKE子句

var q = "SELECT * FROM Users WHERE Name LIKE '@pName%'"; 

@pName是param我分配一個值來執行查詢。

工作的事情,如果我只是建立像SQL:

var q = "SELECT * FROM Users WHERE Name LIKE '" + name + "%'"; 

..但我寧願如果可以使用PARAM。

o = _cn.Query<User>(q, new { pName = new DbString { Value = name, IsFixedLength = false, Length = 25, IsAnsi = true } }).ToList(); 

我如何得到這個使用了Dapper:

我使用下面的代碼執行查詢?

+2

確保你記住逃避你喜歡條款(見答案評論) –

回答

15
SELECT * FROM Users WHERE Name LIKE @pName + '%' 
+3

確保你逃避你喜歡條款,但:http://stackoverflow.com/questions/439495/tsql-like-escape-clause –

+0

@Sam:好點。 –

+0

謝謝薩姆。我不熟悉這個,所以會加上它。 – marcusstarnes