string queryStr = "prc_set_work_schedule";
            OracleConnection cn = new OracleConnection(NSGOracleConStr.NSGOracleConnectionStr);
            OracleCommand cmd = null;
            cmd = new OracleCommand(queryStr,cn);
            cmd.CommandType = CommandType.StoredProcedure;            OracleParameter p1 = new OracleParameter("P_GROUP_CONFIG_ID", OracleType.Number, 10);
            p1.Direction = ParameterDirection.Input;
            p1.Value = this.grdData.CurrentRow.Cells["ROW_ID"].Value;
            cmd.Parameters.Add(p1);            OracleParameter p2 = new OracleParameter("P_RETURN_CODE", OracleType.VarChar, 20);
            p2.Direction = ParameterDirection.Output;
            cmd.Parameters.Add(p2);            OracleParameter p3 = new OracleParameter("P_RETURN_MSG", OracleType.VarChar, 40);
            p3.Direction = ParameterDirection.Output;
            cmd.Parameters.Add(p3);            try
            {
                cn.Open();
                cmd.ExecuteNonQuery();
  
            }
            catch (OracleException ex)
            {
                MessageBox.Show(ex.Message.ToString());
            }
            finally
            {
                cn.Close();
                cmd.Dispose();
            }
小女子实在看不出,什么地方写错了。但是该存储过程,在程序运行期间只有第一次执行起到作用????

解决方案 »

  1.   

    数据或格式会不会有问题,比如null值
      

  2.   

    在oracle数据库中可以连续执行,我再调调程序中会不会不执行存储过程
      

  3.   

    如果在Web上而调用代码写在Page_Load里面调用的,则出现这个情况很正常,页面级应用程序缓存造成的. 
    如果在winForm里面出现这个情况,设个断点好好跟踪一下就清楚了.另外,技术问题与性别无关,不需要告诉别人你是"小女子"...
      

  4.   

    在winForm里面出现这个情况的,我已经在程序里测试过了,存储过程的输出值也是正确的,数据库里调试,输出也是正确的返回值,但是效果还是只执行一次。现在只剩下在存储过程中找问题了
      

  5.   

    是啊和性别无关,应该说昨天贴这个帖子的时候,心情还是不错的。没有想到到现在还没有解决。利用oracle的工具单调试也试了,没有问题。(而且结果是正确的)
    程序中获取存储过程的输出值,也试了,没有错误异常,返回结果也是正确的,但是结果不是我想要的。如果说是程序中调用存在问题,但是又说不通,因为我第一次进入应用程序时调用存储过程是成功的结果,只是再调就不行了,必须重新运行应用程序???
      

  6.   

    个人觉得,肯定不是大问题,但是就是不知道在什么细节上出错了。因为第一次用oracle数据库,有很多不懂的地方,劳烦各位多多指教了。或者除了我上面列出来的测试方法外,还有什么可以用来调试的方式,告诉我也行
      

  7.   

    是不是你页面时间问题    Response.Expires = -1;//表示时间立即过期
      

  8.   

    不知道“小女子”是怎样断定存储过程没有执行的?
    是点击按钮那段代码只执行第一次,
    还是代码每次点击按钮都执行,但是存储过程不执行?在这段代码前messagebox.show一下,看是不是每次都执行,
    接受存储过程的返回值,看存储过程是不是每次都执行
      

  9.   

    每執行完SP後要對參數進行清除:
    cmd.Parameters.Clear();
      

  10.   

    问题描述不清楚,WEB开发过程中有回传机制, 可以通过设置ispostback来解决
      

  11.   

    cmd.Parameters.Clear();
    没有用
      

  12.   

    感觉就是什么资源没有清空,造成这种情况。但是除了OracleParameter,  OracleCommand,OracleConnection这三个对象外,难道还有什么需要处理的吗?这三个我都已经做了处理了啊
    ,晕死了
      

  13.   

    没做过关于oracle的东西,mysql到接触过,我看你代码上面只是定义了对象,感觉要在数据库或者组件上面添加一个元素,需要一个操作指针来指出待插入数据的记录,比如getdlgitem(..)->addstring()那样的。一家之言,希望对你有帮助!