我使用以下代码片段来使用存储过程插入值。代码正在成功执行,但没有在DB中插入记录。
请用简单的例子来推荐。
**---- stored procedure--------**
Create PROCEDURE [dbo].[SampleInsert]
@id int, @name varchar(50)
AS
BEGIN
insert into test (id, name) values (@id, @name);
END
**------.hbm file-------**
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
<sql-query name="Procedure">
exec SampleInsert
:Id,:Name
</sql-query>
</hibernate-mapping>
**--------c# code to insert value using above sp------**
ISessionFactory sessionFactory = new Configuration().Configure().BuildSessionFactory();
ISession session = sessionFactory.OpenSession();
IQuery query = session.GetNamedQuery("Procedure");
query.SetParameter("Id", "222");
query.SetParameter("Name", "testsp");
query.SetResultTransformer(new NHibernate.Transform.AliasToBeanConstructorResultTransformer(typeof(Procedure).GetConstructors()[0]));
此致 Jcreddy
答案 0 :(得分:0)
首先,您何时执行查询?
其次,SP没有返回任何内容,你为ResultTransformer添加了什么?
代码应如下所示:
session.GetNamedQuery("Procedure")
.SetParameter("Id", "222")
.SetParameter("Name", "testsp")
.ExecuteUpdate()