C#如何执行存储过程

 以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 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,这些的名字要和存储过程中的参数名一样,顺序和类型均要对应一致。

你可能感兴趣的:(数据库,String,C#,command,存储,Parameters)