调用存储过程的参数不用加@
cmd.Parameters.Add("ids",ids);
另外:没看到你ids在哪里定义的

解决方案 »

  1.   

    看一下是不是存储过程问题~就随便test一下select * from... 看是程序上(C#)的问题还是Oracle上的问题?路过...
      

  2.   

    谢谢你,
    ids是我在oracle数据库中的IN 参数
    在这也要定义吗?
    请问应该怎么写
    上面的程序
    谢谢!
      

  3.   

    哦存储过程我已经测试过了
    那我用SQL语句试试
    对了上面的ids参数还需要在程序中定义吗?
      

  4.   

    SqlParameter ids=new SqlParameter("ids");
    ids.Value=...;---你是输入参数,就应该在程序中赋值
      

  5.   

    晕,用SqlClient连Oracle?
    可以吗?我都是用OracleClient或者ODBC.Net连的
    而且Oracle参数定义不是“@”而是“:”
      

  6.   

    那上面的程序应该怎么修改呢?
    我是用OracleClient连接的啊
      

  7.   

    而且都是提示这句错误信息,不理解什么意思.
    该位置上不允许有空白。处理资源 'http://localhost/ApplyWebService/ApplyService.asmx/AddNewRuYuanApply' 时出错。第 5 行,位置: 154 
       at System.Data.OracleClient.OracleCommand.Execute(OciHandle statementHandle, CommandBehavior behavior, Boolean isReader, ...
      

  8.   

    能帮我改下吗?
    我用cmd.Parameters.Add("@ids",ids);不是直接把值符给参数了吗?
    ????
      

  9.   

    对了是不是要在这里面的存储过程加上参数?
    OracleCommand cmd = new OracleCommand("InsertApplyInfor",connection); 改成
    OracleCommand cmd = new OracleCommand("InsertApplyInfor(ids,delegates)",connection);?????
      

  10.   

    OracleCommand cmd = new OracleCommand("InsertApplyInfor",connection);
    cmd.CommandType = CommandType.StoredProcedure;
                       SqlParameter ids=new SqlParameter("ids");
                       ids.Value=...;
    cmd.Parameters.Add(ids);
    SqlParameter delegates=new SqlParameter("delegates");
                       delegates.Value=...;
    cmd.Parameters.Add(delegates);
    int result = cmd.ExecuteNonQuery();
      

  11.   

    oleDbSelectCommand1.CommandText = "GETBILLNO";
    oleDbSelectCommand1.CommandType = CommandType.StoredProcedure;
    oleDbSelectCommand1.Parameters.Clear();
    OleDbParameter param = oleDbSelectCommand1.Parameters.Add("@ids", OleDbType.VarChar, 18);
    param.Value = "......";
    param = oleDbSelectCommand1.Parameters.Add("@delegates", OleDbType.VarChar, 8);
    param.Value = "......";
    oleDbSelectCommand1.Connection = oleDbConnection1;
    oleDbConnection1.Open();
    oleDbSelectCommand1.ExecuteNonQuery();