oracle怎样调用存储过程 C#调用存储过程简单完整例子
C#调用存储过程简单完整例子
CREATE PROC P_TEST @Name VARCHAR( ) @Rowcount INT OUTPUT AS BEGIN SELECT * FROM T_Customer WHERE NAME=@Name SET @Rowcount=@@ROWCOUNT END GO
存储过程调用如下:
DECLARE @i INT EXEC P_TEST A @i OUTPUT SELECT @i 结果
DotNet 部分(C#) WebConfig 文件:
C#代码:(用到两个测试控件 DataGrid (用于显示绑定结果集合) Lable(用于显示存储过程返回单值)
//添加数据库引用
代码
using System Data SqlClient;
private void Page_Load(object sender System EventArgs e)
{ // 在此处放置用户代码以初始化页面
String DBConnStr; DataSet MyDataSet=new DataSet();
System Data SqlClient SqlDataAdapter DataAdapter=new System Data SqlClient SqlDataAdapter();
DBConnStr=System Configuration ConfigurationSettings AppSettings[ ConnectString ];
System Data SqlClient SqlConnection myConnection = new System Data SqlClient SqlConnection(DBConnStr);
if (myConnection State!=ConnectionState Open)
{ myConnection Open(); }
System Data SqlClient SqlCommand myCommand = new System Data SqlClient SqlCommand( P_Test myConnection);
myCommand CommandType=CommandType StoredProcedure; //添加输入查询参数 赋予值
myCommand Parameters Add( @Name SqlDbType VarChar);
myCommand Parameters[ @Name ] Value = A ; //添加输出参数
myCommand Parameters Add( @Rowcount SqlDbType Int);
myCommand Parameters[ @Rowcount ] Direction=ParameterDirection Output;
myCommand ExecuteNonQuery();

DataAdapter SelectCommand = myCommand;
if (MyDataSet!=null)
{ DataAdapter Fill(MyDataSet table ); }
DataGrid DataSource=MyDataSet; DataGrid DataBind(); //得到存储过程输出参数
Label Text=myCommand Parameters[ @Rowcount ] Value ToString();
if (myConnection State == ConnectionState Open) { myConnection Close();
}
}
lishixinzhi/Article/program/net/201311/13759