MSSQL2005 Storage Process Page 및 C# 호출

저장 프로세스 생성

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

좋은 웹페이지 즐겨찾기