我的第一个存储过程!

1.存储过程的创建:+++++++++++++++++++++++++++++++++

/*++++++++++++功 能:根据不同的条件来统计Count(*)记录条数+++++++++++

--EXECUTE Count_info 1,'',620000,GanSu

--EXECUTE Count_info 2,'',620000,GanSu

--EXECUTE Count_info 3,'',620000,GanSu

--EXECUTE Count_info 3,'565',620000,GanSu

++++++++++++作 者:Esoutong[我的第一个存储过程哈哈] ++++++++++++
*/

CREATE PROC Count_info( @Flag INT, @Type varchar(50), @ID INT ,@Table varchar(20) )

AS
DECLARE @SQL VARCHAR(2000)
if @Flag=1
    BEGIN
  SELECT @SQL='select  Count(*) from '+ @Table +' where AreaDigit between '+ CONVERT (VARCHAR(20),@ID) +' and '+ CONVERT (VARCHAR(20),@ID+9999) 
  
    END 
 
if @Flag=2
    BEGIN
  SELECT @SQL='select  Count(*) from '+ @Table +' where AreaDigit between '+ CONVERT (VARCHAR(20),@ID) +' and '+ CONVERT (VARCHAR(20),@ID+99) 
  
    END 

if @Flag=3
    BEGIN
                if @Type=' '
                   Begin
       SELECT @SQL='select  Count(*) from '+ @Table +' where AreaDigit='+ CONVERT (VARCHAR(20),@ID)   
                   END
                else
                   Begin
       SELECT @SQL='select  Count(*) from '+ @Table +' where EconomyWay='''+CONVERT (VARCHAR(20),@Type)+'''and AreaDigit='+ CONVERT (VARCHAR(20),@ID)  
                   END                  
                              
    END
exec(@sql)
GO

2.存储过程的调用方法:+++++++++++++++++++++++++++++++++


/// <summary>
  /// CountReco:调用SQL存储过程Count_info
  /// </summary>
  /// <param name="ProName"></param>
  /// <param name="Flag"></param>
  /// <param name="Type"></param>
  /// <param name="ID"></param>
  /// <param name="Table"></param>
  /// <returns></returns>
  public string CountReco(string ProName,int Flag,string Type,int ID,string Table)
  {
   string Count="";
   conn=new SqlConnection(esoutong.constr);
   cmd=new SqlCommand(ProName, conn);
   conn.Open();

   cmd.CommandType = CommandType.StoredProcedure;

   SqlParameter parameterFlag = new SqlParameter("@Flag", SqlDbType.Int, 4);
   parameterFlag.Value = Flag;
   cmd.Parameters.Add(parameterFlag);

   SqlParameter parameterType= new SqlParameter("@Type", SqlDbType.NChar, 50);
   parameterType.Value = Type;
   cmd.Parameters.Add(parameterType);

   SqlParameter parameterID= new SqlParameter("@ID", SqlDbType.Int, 4);
   parameterID.Value = ID;
   cmd.Parameters.Add(parameterID);

   SqlParameter parameterTable= new SqlParameter("@Table", SqlDbType.NChar, 20);
   parameterTable.Value = Table;
   cmd.Parameters.Add(parameterTable);

   
   SqlDataReader rdr=cmd.ExecuteReader();
   if(rdr.Read())
   {
    Count=rdr[0].ToString();

   }
      rdr.Close();
   conn.Close();
   
   return Count;
  }

3.ASP.NET中的调用:CountReco("Count_info",1,"",620000,"GanSu")

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值