这是nhibernate链接sql 2000的参数运用 在网上看到的
一种:
<sql-query name="ParamSProcs">
<return-scalar column="value" type="long"/>
<return-scalar column="value2" type="long"/>
exec paramSProcs ?, ?
</sql-query>
二种:
<sql-query name="ParamSProcs">
<return-scalar column="value" type="long" />
<return-scalar column="value2" type="long" />
exec paramSProcs ?, :second
</sql-query>dal调用
public IList ParamStoredProcedure()
{
return _session.GetNamedQuery("ParamSProcs")
.SetInt64(0, 10L)
.SetInt64(1, 20L)
//或者.SetInt64("second", 20L)
.List();
}但是我用mysql数据库,这么写
<sql-query name="GetUsersAll">
<return-scalar column="value" type="int"/>
<return class="UserObject.NHibernate.User, UserObject"/>
<!--<return-scalar column="value" type="long"/>
<return-scalar column="value2" type="long"/>-->
call GetUsersById(?)
</sql-query>调用
IList<User> ti = sess.GetNamedQuery("GetUsersAll").SetInt32(0, 1).List<User>();但是却要报错
错误信息:
could not execute query
[ call GetUsersById(?) ]
Positional parameters: #0>1
[SQL: call GetUsersById(?)]有哪位大虾知道 nhibernate 配置mysql存储过程 的参数怎么写,还有怎么调用啊??
一种:
<sql-query name="ParamSProcs">
<return-scalar column="value" type="long"/>
<return-scalar column="value2" type="long"/>
exec paramSProcs ?, ?
</sql-query>
二种:
<sql-query name="ParamSProcs">
<return-scalar column="value" type="long" />
<return-scalar column="value2" type="long" />
exec paramSProcs ?, :second
</sql-query>dal调用
public IList ParamStoredProcedure()
{
return _session.GetNamedQuery("ParamSProcs")
.SetInt64(0, 10L)
.SetInt64(1, 20L)
//或者.SetInt64("second", 20L)
.List();
}但是我用mysql数据库,这么写
<sql-query name="GetUsersAll">
<return-scalar column="value" type="int"/>
<return class="UserObject.NHibernate.User, UserObject"/>
<!--<return-scalar column="value" type="long"/>
<return-scalar column="value2" type="long"/>-->
call GetUsersById(?)
</sql-query>调用
IList<User> ti = sess.GetNamedQuery("GetUsersAll").SetInt32(0, 1).List<User>();但是却要报错
错误信息:
could not execute query
[ call GetUsersById(?) ]
Positional parameters: #0>1
[SQL: call GetUsersById(?)]有哪位大虾知道 nhibernate 配置mysql存储过程 的参数怎么写,还有怎么调用啊??
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货