举个例子: 在数据库中创建一个存储过程。这里直接举例命名为getRecord,有一个输入参数sid,输出的变量sname
开始连接数据库:
OracleConnection OC1 = new OracleConnection("Data Source=sos;Persist Security Info=True;User Id=MYTEST; Password=MYTEST");
OC1.Open();
OracleCommand orclCMD = new OracleCommand(); //初始化一个命令对象
orclCMD .Connection = OC1;
orclCMD .CommandText = "getrecord"; //存储过程名
orclCMD .CommandType = CommandType.StoredProcedure;//表面是存储过程
如果创建存储过程是有变量,所以还要声明变量
OracleParameter IdIn = testCMD.Parameters.Add("sid", OracleType.Int32, 11); //输入参数
IdIn.Direction = ParameterDirection.Input;
IdIn.Value = Convert.ToInt32(从界面获取输入的变量); //获得 stuid 号。
//测试时,可直接写成 IdIn.Value = 2 这样的形式
//如果创建存储过程是还定义了输出变量
OracleParameter NumTitles = testCMD.Parameters.Add("sname", OracleType.VarChar, 110);//输出参数
NumTitles.Direction = ParameterDirection.Output;
//测试执行存储过程影响的行数
testCMD.ExecuteNonQuery();
// 注意获得参数的方式: testCMD.Parameters["sname"] ;这个是在存储过程中有输出的变量需要这样子,如果没有输出变量,可以不写。
MessageBox.Show(testCMD.Parameters["sname"].Value.ToString());