列错误中的冒号 ':' - 并非所有命名参数都已在 Nhibernate 中设置?
Posted
技术标签:
【中文标题】列错误中的冒号 \':\' - 并非所有命名参数都已在 Nhibernate 中设置?【英文标题】:Colon ':' in column error - Not all named parameters have been set in Nhibernate?列错误中的冒号 ':' - 并非所有命名参数都已在 Nhibernate 中设置? 【发布时间】:2020-02-03 04:04:07 【问题描述】:我有一个表,其中的列中有冒号。我试图找出一种在尝试查询数据库时忽略冒号作为参数的方法。我曾尝试使用 SetParameter 和 String.Format 但它不起作用。我也试图用 :: 和 \ 来逃避冒号,但没有运气。请参阅下面的示例
var result = session.CreateSQLQuery("Select id, [Results: A] as ResultsA, [Results: B] as ResultsB FROM Table").SetResultTransformer(Transformers.Alias.ToBean<TableObject>()).List<TableObject>();
【问题讨论】:
【参考方案1】:你也必须逃脱 colons
和 \
。
尝试用\\:
替换:
或者,you can add @
在你的字符串之前避免\\
像这样:
var result = session.CreateSQLQuery(@"Select id, [Results\: A] as ResultsA, [Results\: B] as ResultsB FROM Table").SetResultTransformer(Transformers.Alias.ToBean<TableObject>()).List<TableObject>();
【讨论】:
不走运,当我使用 @ 或 \\: 时,它会进行查询 Select id, [Results\\: A] as ResultsA, [Results\\: B] as ResultsB FROM Table,但它仍然将冒号视为参数【参考方案2】:检查异常详细信息,以及实际发送到 DB 的 SQL。
【讨论】:
以上是关于列错误中的冒号 ':' - 并非所有命名参数都已在 Nhibernate 中设置?的主要内容,如果未能解决你的问题,请参考以下文章
求已SQL语句报错的问题,报啥并非所有的变量都已绑定,代码在补充中:
Pairwise T检验:complete.cases(x,y)中的错误:并非所有参数的长度都相同吗?
MyBatis 整合Oracle 报错:java.sql.SQLException: ORA-01008: 并非所有变量都已绑定