C#调用存储过程
来源:互联网 发布:python开发spark 编辑:程序博客网 时间:2024/05/16 04:08
1.調用SQL Server的存儲過程
假如我們有如下一個存儲過程,很簡單的實現,只是將兩個傳進來值做加法處理然后返回
(
@returnvalue int OUTPUT, --返回結果
@Parameter_1 int, --參數一
@Parameter_2 int --參數二
)
AS
-----------------------------------------------
set @returnvalue = @Parameter_1 + @Parameter_2
RETURN @returnvalue
-------------------------------------------------
GO
{
System.Random rnd = new Random();
string constr = "Data Source=localhost;initial catalog=testdb;user id=sa;password=sa;connect timeout=3000";
SqlConnection conn = new SqlConnection(constr);
conn.Open();
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
cmd.CommandText = "AddMethod";
cmd.CommandType = CommandType.StoredProcedure;
//參數一
SqlParameter parameter_1 = new SqlParameter("@Parameter_1",SqlDbType.Int);
parameter_1.Direction = ParameterDirection.Input;
parameter_1.Value = (int)(rnd.NextDouble() * 100);
//參數二
SqlParameter parameter_2 = new SqlParameter("@Parameter_2",SqlDbType.Int);
parameter_2.Direction = ParameterDirection.Input;
parameter_2.Value = (int)(rnd.NextDouble() * 100);
//返回值
SqlParameter returnValue = new SqlParameter("@returnValue",SqlDbType.Int);
returnValue.Direction = ParameterDirection.Output;
cmd.Parameters.Add(returnValue);
cmd.Parameters.Add(parameter_1);
cmd.Parameters.Add(parameter_2);
try
{
cmd.ExecuteNonQuery();
}
finally
{
conn.Close();
}
return (int)returnValue.Value;
}
2.調用Oralce的存儲過程
先創建一個package和package body,代碼如下
(1).Package
type mytype is ref cursor;
procedure p_Test(mycs out mytype);
function f_get(str in varchar2) return varchar2;
end;
procedure p_Test(mycs out mytype) is
begin
open mycs for
select * from dual;
end p_Test;
function f_get(str varchar2) return varchar2 is
str_temp varchar2(100) := 'good luck !';
begin
str_temp := str_temp || str;
return str_temp;
end f_get;
end;
先來個調用方法的
{
string constr = "Data source=E4MT;user id=sa;password=sa";
OracleConnection conn = new OracleConnection(constr);
conn.Open();
OracleCommand cmd = new OracleCommand();
cmd.Connection = conn;
cmd.CommandText = "TestPackage.f_get";
cmd.CommandType = CommandType.StoredProcedure;
OracleParameter parameter_1 = new OracleParameter("str",OracleType.VarChar,100);
parameter_1.Direction = ParameterDirection.Input;
parameter_1.Value = "This is just a test";
OracleParameter parameter_2 = new OracleParameter("result",OracleType.VarChar,100);
parameter_2.Direction = ParameterDirection.ReturnValue;
cmd.Parameters.Add(parameter_1);
cmd.Parameters.Add(parameter_2);
try
{
cmd.ExecuteNonQuery();
}
finally
{
conn.Close();
}
return parameter_2.Value.ToString();
}
{
string constr = "Data source=E4MT;user id=sa;password=sa";
OracleConnection conn = new OracleConnection(constr);
conn.Open();
OracleCommand cmd = new OracleCommand();
cmd.Connection = conn;
cmd.CommandText = "TestPackage.p_Test";
cmd.CommandType = CommandType.StoredProcedure;
OracleParameter parameter_1 = new OracleParameter("mycs",OracleType.Cursor);
parameter_1.Direction = ParameterDirection.Output;
cmd.Parameters.Add(parameter_1);
DataSet ds = new DataSet();
try
{
OracleDataAdapter da = new OracleDataAdapter(cmd);
da.Fill(ds,"test");
}
finally
{
conn.Close();
}
return ds;
}
- C#调用存储过程
- C#调用存储过程
- C#调用存储过程
- C#调用存储过程
- C#调用存储过程
- C# 调用存储过程
- c# 调用存储过程
- C#调用存储过程
- c# 调用 存储过程
- C# 调用存储过程
- C#调用存储过程
- C#调用存储过程
- C#调用存储过程
- C#调用存储过程
- C#调用存储过程
- C# 调用存储过程
- C# 调用存储过程
- C# 调用存储过程
- 稀疏矩阵相加(十字链表存储)
- maximo中直接应用得到数据库联接
- 超级解压 V1.0
- Cygwin 使用 svn 命令导出中文文件名或目录
- SQL Server中四类事务并发问题的实例再现(转)
- C#调用存储过程
- Eclipse设定文件的默认打开方式
- cydia 更新后 进入 显示 “无法加载 不被信任的服务器证书”
- Domino Web开发
- 6.8.2 列表的绑定操作
- gdb-7.1 移植到HISI3512
- 用友+花生壳实现不同网络环境互访
- 软件工程师:如何学习Java经验总结
- 该行已经属于另一个表 的解决