C#如何执行存储过程

 我来答
卿行真2458
2013-08-23 · 超过64用户采纳过TA的回答
知道答主
回答量:135
采纳率:60%
帮助的人:56.1万
展开全部
以Oracle为例,其它数据库仅改变数据库对象就可以。下面是带参数的,不带参数的话paramete为null即可。 参数对应 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); } } } 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); } } } 执行 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; } } 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,这些的名字要和存储过程中的参数名一样,顺序和类型均要对应一致。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式