System.Data.OleDb.OleDbParameter myParam;
String sql = "ModFunc";
OleDbCommand myCommand = new OleDbCommand(sql, myConnection);    
            myCommand.CommandType = CommandType.StoredProcedure;
            myParam = myCommand.Parameters.Add("p_Roleid",OleDbType.VarChar,5);
myParam.Value =q_roleid;
myParam = myCommand.Parameters.Add("p_Funcid",OleDbType.VarChar,5);
myParam.Value =S_id;
myCommand.Connection.Open();
try 
{
myCommand.ExecuteNonQuery();                 
Message.Text = "<b>已修改权限</b>";
}
catch (Exception e)
{
Message.Text = "错误:未能添加记录!";
Message.Style["color"] = "red";
}
myCommand.Connection.Close();给你个调用的例子

解决方案 »

  1.   

    myOracleCommand.Parameters .Add(num);你没指定这个的类型
      

  2.   

    谢谢babytong,我觉得我们两个代码没有区别啊,而且我要用oracleClient
      

  3.   

    看代码似乎没有问题啊,是不是OracleConn()的问题?
    以前只用过 SQL Connection
      

  4.   

    好像2002版本的,有些数据库连接组件(oracle 等)都有一些问题,当然,sql server 除外,不知道是不是真的
      

  5.   

    lemong大哥,OracleConn是我封装的类,用来连接oracle 数据库,我跟踪调试了一遍,发现
    连接没有问题,就是在
    OracleParameter num = new OracleParameter("num",OracleType.Number);
    有个 InvalidCastException 异常,但是系统并没有抛出
    到myOracleCommand.ExecuteNonQuery();抛出了异常
      

  6.   

    myOracleCommand.Parameters .Add(num);
    我是说你这句参数的类型和长度没指定。
      

  7.   

    把这句改成
    OracleParameter num = new OracleParameter("yhdm",OracleType.Number);
      

  8.   

    你传的参数名跟Oracle的存储过程的参数名不一致。
      

  9.   

    babytong大哥,行了,太感谢了,呵呵