DBMNG数据库管理与应用

独立思考能力,对于从事科学研究或其他任何工作,都是十分必要的。
当前位置:首页 > Oracle > 驱动连接

C#如何执行存储过程

Oracle为例,其它数据库仅改变数据库对象就可以。下面是带参数的,不带参数的话paramete为null即可。

参数对应

view plainprint?
public static int UploadStartCloseSoftInfo(string[] args)
{
OracleParameter parameter1 = new OracleParameter(参数名1, OracleType.类型);
parameter1.Value =类型转换(args[0]);

OracleParameter parameter2 = new OracleParameter(参数名2, OracleType.类型);
parameter2.Value =类型转换(args[1]);
... ...
OracleParameter parametern = new OracleParameter(参数名n, OracleType.类型);
parametern.Value =类型转换(args[n-1]);
OracleParameter[] parameter
= {parameter1,parameter2,..., parametern};

return SDProvider.RunProcedure(存储过程名, parameter);
}
}
}
执行

view plainprint?
public class SDProvider
{
public static string GetConnectionString()
{
string conStr =连接数据库字符串;
return conStr ;
}

public static int RunProcedure(string prName, IDataParameter[] parameters)
{
try
{
using(OracleConnection connection=
new OracleConnection(GetConnectionString()))
{
connection.Open();
OracleCommand command =
BuildQueryCommand(connection, storedProcName, parameters);

return command.ExecuteNonQuery();
}
}
catch
{
}
return 0;
}
private static OracleCommand BuildQueryCommand
(OracleConnection connection,
string storedProcName,
IDataParameter[]parameters)
{
OracleCommand command = new OracleCommand(storedProcName, connection);
command.CommandType = CommandType.StoredProcedure;
if(parameters!=null)
{
foreach (OracleParameter parameter in parameters)
{
command.Parameters.Add(parameter);
}
}
return command;
}
}
注意:

1、存储过程名正确。

2、参数名1,参参数名2,这些的名字要和存储过程中的参数名一样,顺序和类型均要对应一致。

本文出自 “零度编程” 博客http://zeropro.blog.51cto.com/3792937/731047

本站文章内容,部分来自于互联网,若侵犯了您的权益,请致邮件chuanghui423#sohu.com(请将#换为@)联系,我们会尽快核实后删除。
Copyright © 2006-2023 DBMNG.COM All Rights Reserved. Powered by DEVSOARTECH            豫ICP备11002312号-2

豫公网安备 41010502002439号