我有一个查询字符串,参数在撇号之间需要这个:
select * from myTable t
where t.name= ':name'
然而,在调试代码时,他告诉我找不到参数:
protected bool validName(string n, NHibernate.ISession sesion){
var result= sesion.CreateSQLQuery(Queries.getQuery("queryName"))
.SetParameter("name", n)
.UniqueResult();
答案 0 :(得分:0)
Query解析器应该为您的sql语句应用。尝试按照以下方式进行查询:
select * from myTable t where t.name = :name
我建议你使用HQL
作为样本:
var result = session.CreateQuery("from Entity t where t.name = :name")
.SetParameter("name", n)
.UniqueResult();
其中Entity
是引用您的表的实体(通过映射)。
答案 1 :(得分:0)
撇号用于表示文字字符串。它们应该也不能用于参数名称。