C#调用存储过程和函数
来源:互联网 发布:beoplayer安卓版 软件 编辑:程序博客网 时间:2024/06/03 03:48
1、调用存储过程
1)存储过程
下面是一个简单的存储过程,调用时更新描述信息
PROCEDURE TEST(p_user_name VARCHAR2) IS BEGIN IF p_user_name IS NOT NULL THEN UPDATE k_users ku SET ku.description='测试' WHERE ku.user_name=p_user_name; END IF; END;
2)C#调用
private void btnLogin_Click(object sender, EventArgs e) { string result=string.Empty; string sql = "MY_PUBLIC_PCK.TEST"; OracleParameter op1 = new OracleParameter("p_user_name", OracleDbType.Varchar2); op1.Direction = ParameterDirection.Input; op1.Value = this.tbUserName.Text; try { OracleConnection myConnect = new OracleConnection(constr); OracleCommand myCmd = new OracleCommand(sql,myConnect); myCmd.CommandType = CommandType.StoredProcedure; myConnect.Open(); myCmd.Parameters.Add(op1); myCmd.ExecuteNonQuery(); } catch (Exception ex) { this.tbUserName.Text = ex.ToString(); } }
OracleParameter op =new OracleParameter(string parameterName,OracleDbType oraType,int size)
parameterName是参数名称,oraType是参数的类型,size值参数的长度
myCmd.CommandType = CommandType.StoredProcedure; op1.Direction = ParameterDirection.Input;
CommandType.StoredProcedure指定操作的类型是存储过程
ParameterDirection.Input 参数传递的方向,Input为输入参数,Out为输出参数,ReturnValue接收返回值
2、调用函数
1)函数
函数的定义和存储过程的定义是一样的,只不过函数必须要有返回值
FUNCTION TEST1(p_name VARCHAR2) RETURN VARCHAR2 IS BEGIN RETURN 'Good Morning ,'||p_name; END;
2)C#调用
private void btnLogin_Click(object sender, EventArgs e) { string sql = "MY_PUBLIC_PCK.TEST1"; OracleParameter op1 = new OracleParameter("result", OracleDbType.Varchar2, 20); OracleParameter op2 = new OracleParameter("p_user_name", OracleDbType.Varchar2); op1.Direction = ParameterDirection.ReturnValue; op2.Direction = ParameterDirection.Input; op2.Value = this.tbUserName.Text; try { OracleConnection myConnect = new OracleConnection(constr); OracleCommand myCmd = new OracleCommand(sql,myConnect); myCmd.CommandType = CommandType.StoredProcedure; myConnect.Open(); myCmd.Parameters.Add(op1); myCmd.Parameters.Add(op2); myCmd.ExecuteNonQuery(); MessageBox.Show(op1.Value.ToString()); } catch (Exception ex) { this.tbUserName.Text = ex.ToString(); }
op1.Direction = ParameterDirection.ReturnValue;
如果传给后台的参数的方向是ReturnValue,即有返回值,那么调用的StoredProcedure将会被识别成函数。
OracleParameter op1 = new OracleParameter("result", OracleDbType.Varchar2, 20);
接收返回值的参数必须要定义长度大小,不然会报错
还有一点需要注意的是函数返回的值会return到myCmd.Parameters的第一个参数中,把上面的顺序改一下也会报错
myCmd.Parameters.Add(op2); myCmd.Parameters.Add(op1);
阅读全文
0 0
- C#调用存储过程和函数
- 存储过程和c#调用
- 调用存储过程和函数
- C#调用Oracle存储过程或者函数
- 存储过程和C#中的调用
- c#存储过程入门,创建和调用
- C#调用存储过程
- C#调用存储过程
- C#调用存储过程
- C#调用存储过程
- C#调用存储过程
- C# 调用存储过程
- c# 调用存储过程
- C#调用存储过程
- c# 调用 存储过程
- C# 调用存储过程
- C#调用存储过程
- C#调用存储过程
- SSL_1463--公共子串(动规练习题)
- superior drummer 3破解教程
- 数据结构实验之查找七:线性之哈希表
- VIJOS-P1134 24点游戏 dfs
- Spark RDD、DataFrame和DataSet的区别
- C#调用存储过程和函数
- final关键字使用
- 根据py-faster-rcnn的demo.py修改成c++版本
- JDBC 数据库连接
- Space Filter
- C++数据序列化之MessagePack
- Android开发值JNI函数动态注册
- TCP,IP,HTTP,SOCKET区别和联系
- Notification讲解