MSSQL2005 Storage Process Page 및 C# 호출

저장 프로세스 생성

  
  
  
  
  1. Create PROCEDURE [dbo].[PROCE_SQL2005PAGECHANGE] 
  2. ( 
  3. @TableName varchar(50),            --  
  4. @ReFieldsStr varchar(200) = '*',   -- ( *) 
  5. @OrderString varchar(200),         -- ( ! order by) 
  6. @WhereString varchar(500) =N'', -- ( where) 
  7. @PageSize int,                     --  
  8. @PageIndex int = 1 ,               --  
  9. @TotalRecord int output            --  
  10. ) 
  11. AS 
  12.  
  13. BEGIN    
  14.  
  15.     --  
  16.     Declare @StartRecord int; 
  17.     Declare @EndRecord int; 
  18.     Declare @TotalCountSql nvarchar(500); 
  19.     Declare @SqlString nvarchar(2000);    
  20.     set @StartRecord = (@PageIndex-1)*@PageSize + 1 
  21.     set @EndRecord = @StartRecord + @PageSize - 1 
  22.     SET @TotalCountSql= N'select @TotalRecord = count(*) from ' + @TableName;--  
  23.     SET @SqlString = N'(select row_number() over (order by '+ @OrderString +') as rowId,'+@ReFieldsStr+' from '+ @TableName;--  
  24.     -- 
  25.     IF (@WhereString! = '' or @WhereString!=null) 
  26.         BEGIN 
  27.             SET @TotalCountSql=@TotalCountSql + ' where '+ @WhereString; 
  28.             SET @SqlString =@SqlString+ ' where '+ @WhereString;            
  29.         END 
  30.     --  
  31.     --IF(@TotalRecord is null) 
  32.     --   BEGIN 
  33.            EXEC sp_executesql @totalCountSql,N'@TotalRecord int out',@TotalRecord output;--  
  34.     -- END 
  35.     ----  
  36.     set @SqlString ='select * from ' + @SqlString + ') as t where rowId between ' + ltrim(str(@StartRecord)) + ' and ' + ltrim(str(@EndRecord)); 
  37.     Exec(@SqlString)    
  38. END 


 

C#


 


   
   
   
   
  1. private static readonly string ConnString = "";//  
  2.  
  3.        /// <summary> 
  4.        ///   
  5.        /// </summary> 
  6.        /// <param name="TableName"> </param> 
  7.        /// <param name="ReFieldsStr"> ( *)</param> 
  8.        /// <param name="OrderString"> ( ! order by)</param> 
  9.        /// <param name="WhereString"> ( where)</param> 
  10.        /// <param name="index"> </param> 
  11.        /// <param name="pagesize"> </param> 
  12.        /// <param name="pg"> </param> 
  13.        /// <returns></returns> 
  14.        public static DataSet Select_Certificate(string TableName, string ReFieldsStr, string OrderString, string WhereString, int index, int pagesize, ref int pg) 
  15.        { 
  16.            int i = 0; 
  17.            SqlConnection sqlCon = new SqlConnection(ConnString); 
  18.            SqlDataAdapter da = new SqlDataAdapter("PAGECHANGE", sqlCon); 
  19.            SqlParameter para0 = new SqlParameter("@TableName", TableName); 
  20.            SqlParameter para1 = new SqlParameter("@ReFieldsStr", ReFieldsStr); 
  21.            SqlParameter para2 = new SqlParameter("@OrderString", OrderString); 
  22.            SqlParameter para3 = new SqlParameter("@WhereString", WhereString); 
  23.            SqlParameter para4 = new SqlParameter("@PageSize", pagesize); 
  24.            SqlParameter para5 = new SqlParameter("@PageIndex", index); 
  25.            SqlParameter outputpara = new SqlParameter("@TotalRecord", SqlDbType.Int); 
  26.            outputpara.Direction = ParameterDirection.Output; 
  27.            da.SelectCommand.Parameters.Add(para0); 
  28.            da.SelectCommand.Parameters.Add(para1); 
  29.            da.SelectCommand.Parameters.Add(para2); 
  30.            da.SelectCommand.Parameters.Add(para3); 
  31.            da.SelectCommand.Parameters.Add(para4); 
  32.            da.SelectCommand.Parameters.Add(para5); 
  33.            da.SelectCommand.Parameters.Add(outputpara); 
  34.            da.SelectCommand.CommandType = CommandType.StoredProcedure; 
  35.            DataSet ds = new DataSet(); 
  36.            try 
  37.            { 
  38.                sqlCon.Open(); 
  39.                da.Fill(ds); 
  40.                i = Convert.ToInt32(outputpara.Value); 
  41.                if (i % pagesize > 0) 
  42.                { 
  43.                    pg = i / pagesize + 1; 
  44.                } 
  45.                else 
  46.                { 
  47.                    pg = i / pagesize; 
  48.                } 
  49.            } 
  50.            catch (Exception ex) 
  51.            { 
  52.                throw new Exception(ex.Message, ex); 
  53.            } 
  54.            finally 
  55.            { 
  56.                sqlCon.Close(); 
  57.                sqlCon.Dispose(); 
  58.            } 
  59.            return ds; 
  60.        } 
 

좋은 웹페이지 즐겨찾기