程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C#如何執行存儲過程

C#如何執行存儲過程

編輯: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 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,這些的名字要和存儲過程中的參數名一樣,順序和類型均要對應一致。

摘自 白楊樹

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved