首页 新闻 搜索 专区 学院

存储过程执行的问题

0
悬赏园豆:10 [已解决问题] 解决于 2014-05-05 11:58
 /// <summary>
        /// 更新应收帐
        /// </summary>
        /// <param name="ysz">应收帐</param>
        /// <returns></returns>
        public static bool YSZ_UpdateForwyjqsr(int I_yszbh,DateTime date, Database db, DbTransaction trans)
        {
            DbCommand cmd = db.GetStoredProcCommand("SP_YSZ_UpdateFORwyjqsr");
            db.AddInParameter(cmd, "@I_yszbh", DbType.Int32, I_yszbh);
            db.AddInParameter(cmd, "@D_wyjqsr", DbType.DateTime, date);
            return Convert.ToBoolean(db.ExecuteNonQuery(cmd, trans));
            
        }

我这样调用存储过程,执行的时候用profile看到了该存储过程已执行,但是数据却没有更新,当我在sqlserver中执行这个存储过程的时候,数据更新了。。求大神知道

土墙的主页 土墙 | 初学一级 | 园豆:112
提问于:2014-05-05 11:22
< >
分享
最佳答案
1

是不是你没提交事务?

收获园豆:10
吴瑞祥 | 高人七级 |园豆:28831 | 2014-05-05 11:23

求指导。。存储过程就这个,,就一个sql语句,哪里有问题。。

Create Procedure [dbo].[SP_YSZ_UpdateFORwyjqsr]
    @I_YSZBH int,
    @D_wyjqsr DATETIME

AS

UPDATE YSZ
SET 
    D_wyjqsr=@D_wyjqsr

WHERE I_YSZBH=@I_YSZBH
土墙 | 园豆:112 (初学一级) | 2014-05-05 11:25

@求剑: 对,看楼下的那个,那应该是你那个database对象的问题.

吴瑞祥 | 园豆:28831 (高人七级) | 2014-05-05 11:29
public static bool YSZ_UpdateForwyjqsr(int I_yszbh,DateTime date) { Database db = DatabaseFactory.CreateDatabase(DBNAME); DbCommand cmd = db.GetStoredProcCommand("SP_YSZ_UpdateFORwyjqsr"); db.AddInParameter(cmd, "@I_yszbh", DbType.Int32, I_yszbh); db.AddInParameter(cmd, "@D_wyjqsr", DbType.DateTime, date); return Convert.ToBoolean(db.ExecuteNonQuery(cmd)); }

我把方法改成这样就行了。。有些东西的概念不是很懂,请问DbTransaction这个东西是做什么用的?

土墙 | 园豆:112 (初学一级) | 2014-05-05 11:36

@求剑: ``就是数据库事务`,你在之后后要提交DbTransaction你看这个DB是不是可以提交和回滚,

吴瑞祥 | 园豆:28831 (高人七级) | 2014-05-05 11:50

@吴瑞祥: 懂了,果然是我的这个DbTransaction没有提交,才导致没有执行成功。。谢大侠

土墙 | 园豆:112 (初学一级) | 2014-05-05 11:57
其他回答(1)
0

既然profile已经看到执行了,把里面的参数提出来,在sql里面执行看结果。

清海扬波 | 园豆:852 (小虾三级) | 2014-05-05 11:28

在sql里执行是ok的

支持(0) 反对(0) 土墙 | 园豆:112 (初学一级) | 2014-05-05 11:32
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册