2014-09-12 51 views
1

Dapper 1.34(在較早的Dapper版本中,像1.1x這樣工作正常)。短纖參數不起作用?

db.Query(@ 「選擇[無論來自哪裏@tablename [PREFIX = '@前綴' ORDER BY [某件事] desc」 的, 新{表名=表名,前綴=前綴})

錯誤:System.Data.SqlClient.SqlException(0x80131904):必須聲明表變量「@TableName」。

我得到同樣的錯誤試圖定義DynamicParameters並傳遞這些。

======= 我目前在做字符串替換{%1} ..但似乎並不能接受......

我能請得到一個樣本,也期待在測試類短小精悍我不能看到它運行,也許我的項目設置有問題?

回答

0

不,從來沒有工作得很好,因爲SQL是如何工作的:

  • 表名無法參數,以及短小精悍從未提供過這一點;這可以工作,如果你在一個DataTable作爲表值參數傳遞,雖然 - 它短小精悍確實支持 - 但我不認爲這是你所追求的
  • '@Prefix'是一個字符串;你的意思是@Prefix(沒有單引號)
+0

其餘的都沒關係我把注意力集中在Table Name參數上,以爲它只是一個參數......數字,我寫的第一個查詢必須有名字傳遞給它。在嘗試傳遞參數20種不同的方式後,我放棄了,認爲這是一個我後來會遇到的錯誤。它從來沒有打我,我通過一個表名... – EthernetIP 2014-09-12 18:58:11

+0

馬克,我怎麼會得到一個值列出名稱。我做了這樣的事情:(IDictionary )ret.First())。Values.ToList()[0]是否有更好的方法? PS我在上面返回1列和1行,但可能會有更多的行和列。我如何迭代它作爲表或什麼的。 – EthernetIP 2014-09-12 19:13:34

+0

@EthernetIP我無法解析這個問題;你能改述一下嗎?我幾乎可以肯定地回答它,但首先我需要了解它... – 2014-09-12 19:14:48