存储过程: 
 
 create or replace procedure stu_pro_update
  (name in varchar2,num in char,sex in char)
  as
  begin
  update scott.student
  set stuname=name,stunum=num,stusex=sex
  where stunum=num;
 commit;
 end;C#中调用存储过程的代码是这样的,感觉没什么错误啊,可是就是执行过后数据库中 stuent 表中的内容没有改变!!!
// 更新数据库中的信息
        private void btn_insert_Click(object sender, EventArgs e)
        {
            string stuName = lb_name.Text.Trim();
            string stuNum = lb_num.Text.Trim();
            string stuSex = lb_sex.Text.Trim();            //连接字符串
            string connStr="Data Source=Chweiorc;User ID=scott;Password=123456";
            OracleConnection connection = new OracleConnection(connStr);
            OracleCommand cmd = connection.CreateCommand();            cmd.CommandText = "stu_pro_update";
            cmd.CommandType = CommandType.StoredProcedure; // 指明用调用存储过程的方式来操作数据库;            OracleParameter namePar=cmd.Parameters.Add("name", OracleType.VarChar, 20);
            namePar.Value = stuName;
            OracleParameter numPar= cmd.Parameters.Add("num", OracleType.Char, 12);
            numPar.Value = stuNum;
            OracleParameter sexPar= cmd.Parameters.Add("sex", OracleType.Char, 2);
            sexPar.Value = stuSex;            connection.Open();
            try
            {
                MessageBox.Show(cmd.ExecuteNonQuery().ToString());
            }
            finally 
            {
                connection.Close();
                cmd.Dispose();
                MessageBox.Show("更新数据完成~~~~");
            }
        }