저장 프로세스 출력 매개 변수 호출
private  void  Form1_Load(  object  sender, EventArgs e)   
   {   
   
    
   SqlParameter para =   new  SqlParameter(  "@CardID"  , SqlDbType.VarChar,20);  //  output       
   
    
   para.Direction = ParameterDirection.Output;  //                 
   
    
   object  o = ProcOutput(  "Proc_RandomCardIDSelect"  , para,   "@CardID"  );  //              
   
    
   if  (o ==   null  || o.ToString() ==   ""  )   
   
    
   {   
   
    
   textBoxCardID.Text =   "     "  ;   
   
    
   }   
   
    
   else   
   
    
   {   
   
    
   textBoxCardID.Text = o.ToString();   
   
    
   }   
   
    
   }   
   
   
    
   ///      
   
    
   ///       Output       
   
    
   ///    
   
    
   ///             
   
    
   ///          
   
    
   ///   Output     
   
    
   ///        
   
    
   public  static  object  ProcOutput(  string  procName,SqlParameter para,  string  OutName)   
   
    
   {   
   
    
   string  url =   "server=.;database = BankATM;user id = sa;password = 132000OOO"  ;  //           
   
    
   SqlConnection conn =   new  SqlConnection(url);  //            
   
    
   conn.Open();  //          
   
   
    
   //SqlCommand cmd = conn.CreateCommand();//            T-Sql       ,              
   
    
   SqlCommand cmd =   new  SqlCommand();   
   
    
   cmd.Connection = conn;   
   
   
    
   cmd.CommandType = CommandType.StoredProcedure;  //               
   
    
   cmd.CommandText = procName;  //            
   
    
   cmd.Parameters.Add(para);  //  para     
   
    
   int  n = cmd.ExecuteNonQuery();  //                
   
    
   object  o = cmd.Parameters[OutName].Value;  //  @CardID     
   
    
   conn.Close();  //       
   
    
   return  o;   
   
    
   }   
   
   
   
   
   T-SQL      Output       --      ,      ,     ‘6222023xxxxxxxxxxxx’。  --     :Proc_RandomCardIDSelect  IF EXISTS(SELECT * FROM SYS.PROCEDURES WHERE NAME=  'Proc_RandomCardIDSelect'  )  BEGIN  DROP PROCEDURE Proc_RandomCardIDSelect  END  GO  CREATE PROCEDURE Proc_RandomCardIDSelect  (  @CARDID VARCHAR(20) OUTPUT --           OUTPUT    )  AS  DECLARE @MYCARD VARCHAR(20),@COUNT INT  SET @MYCARD=  '6222023'  SET @COUNT = 0  WHILE(@COUNT < 9)  BEGIN  SET @MYCARD = @MYCARD + SUBSTRING(CONVERT(VARCHAR(20),RAND()),3,1)  SET @COUNT = @COUNT + 1  END  SET @CARDID = @MYCARD  GO  DECLARE @CARDID VARCHAR(20)  EXEC Proc_RandomCardIDSelect @CARDID OUTPUT  SELECT @CARDID  
예2:
ASP로.NET와 SQL SERVER는 인연이 가장 좋다. 조금 큰 프로그램은 일반적으로 SQL SERVER를 먼저 고려하지만 경제적인 것을 고려하기 때문에 ACCESS 등을 사용한다.SQL SERVER를 사용하면 데이터베이스의 효율을 높이기 위해 일반적으로 저장 프로세스를 찾습니다. 저장 프로세스의 실행 속도가 빠르고 고급 조회 등 기능을 실현할 수 있기 때문입니다.예를 들어 일부 데이터 매개 변수를 전송하지만 SQL 프로세스가 다를 수 있습니다.
다음 예는 새로운 캐릭터를 만들고 캐릭터의 이름을 중복할 수 없도록 요구하는 것이다. 다음은 저장 과정이다.   CREATE PROCEDURE sp_AccountRole_Create@CategoryID int,
@RoleName nvarchar(10),
@Description nvarchar(50),
@RoleID int output
AS
    DECLARE @Count int
    --             
    SELECT @Count = Count(RoleID) FROM Account_Role WHERE
        RoleName = @RoleName
    IF @Count = 0
        INSERT INTO Account_Role 
        (CategoryID, RoleName, Description) valueS
        (@CategoryID, @RoleName, @Description)
        SET @RoleID = @@IDENTITY
        RETURN 1
GO
  
스토리지 프로세스에 대한 C# 프로세스를 수행합니다.SqlConnection DbConnection = new SqlConnection(mConnectionString);
SqlCommand command = new SqlCommand( "sp_AccountRole_Create", DbConnection );
DbConnection.Open(connectString);
//   SqlCommand        
command.CommandType = CommandType.StoredProcedure;command.Parameters.Add("@CategoryID", SqlDbType.Int, 4);
command.Parameters.Add("@RoleName", SqlDbType.NVarChar, 10);
command.Parameters.Add("@Description", SqlDbType.NVarChar, 50);
command.Parameters.Add("@RoleID", SqlDbType.Int, 4);
//    
command.Parameters.Add("Returnvalue",
            SqlDbType.Int,
            4,        // Size
            ParameterDirection.Returnvalue,
            false,        // is nullable 
            0,        // byte precision
            0,        // byte scale
            string.Empty,
            DataRowVersion.Default,
            null );
command.parameters["@CategoryID"].value = permission.CategoryID;
command.parameters["@RoleName"].value = permission.PermissionName;
command.parameters["@Description"].value = permission.Description;
//       ID 
command.parameters["@RoleID"].Direction = ParameterDirection.Output;
int rowsAffected = command.ExecuteNonQuery();
int result = command.parameters["Returnvalue"].value;
int newID = command.parameters["@RoleID"].value;
                이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
wince 레지스트리 관련 토론2) 다른 메커니즘은 이전 메커니즘의 두 번의 가동이 필요한 단점을 피할 수 있다.하지만 단점도 있다.OEM(원시 장치 제조업체)은 OAL 레이어에서 Write Registry ToOEM and ReadRegistr...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.