生成掉存储过程的C#代码

set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go


/*

调用方法:
GetExec 'funds_corp_BizApply',2 
*/
ALTER  PROCEDURE [dbo].[GetExec]
 @PrcName VARCHAR(100),  --存储过程名称
 @type char(1)=1,   --1增删改;2查询  
 @dbName VARCHAR(50)='SpecialFunds'
AS
SET NOCOUNT ON
DECLARE @P VARCHAR(50)
DECLARE @CLTYPE VARCHAR(10)
DECLARE @TP   VARCHAR(50)
DECLARE @PRE VARCHAR(50)
DECLARE @LN VARCHAR(50)
DECLARE @SC VARCHAR(50)
DECLARE @str VARCHAR(500)
DECLARE @intRowcount int
DECLARE @I INT
SET @I=0
CREATE TABLE #TEMP (
 C1 VARCHAR(50),
 C2 VARCHAR(50),
 C3 VARCHAR(50),
 P VARCHAR(50),
 CLTYPE VARCHAR(50),
 C5 VARCHAR(50),
 TP VARCHAR(50),
 PRE VARCHAR(50),
 LN VARCHAR(50),
 SC VARCHAR(50),
 C6 VARCHAR(50),
 C7 VARCHAR(50),
 C8 VARCHAR(50),
 C9 VARCHAR(50),
 C10 VARCHAR(50),
 C11 VARCHAR(50),
 C12 VARCHAR(50),
 C13 VARCHAR(50),
 C14 VARCHAR(50),
 C15 VARCHAR(50)
)

INSERT INTO #TEMP exec sp_sproc_columns @PrcName, 'dbo', @dbName, NULL, @ODBCVer = 3
SET @intRowcount=@@ROWCOUNT-1
--SELECT P,CLTYPE,TP,PRE,LN,SC FROM #TEMP WHERE C13>0
if @type=1
 PRINT 'SqlParameter[] parParms = new SqlParameter['+CONVERT(VARCHAR,@intRowcount+1)+'];'
else
 PRINT 'SqlParameter[] parParms = new SqlParameter['+CONVERT(VARCHAR,@intRowcount)+'];'
DECLARE CUR CURSOR FOR SELECT P,CLTYPE,TP,PRE,LN,SC FROM #TEMP WHERE C13>0
OPEN CUR
FETCH NEXT FROM CUR INTO @P,@CLTYPE,@TP,@PRE,@LN,@SC
WHILE @@FETCH_STATUS = 0
BEGIN
 SET @str= 'parParms['+CONVERT(VARCHAR,@I)+'] = new SqlParameter("'+@P+'", SqlDbType.'
 IF @TP='numeric' 
 BEGIN
  PRINT @str+'Decimal);'
             PRINT 'parParms['+CONVERT(VARCHAR,@I)+'].Precision =' +CONVERT(VARCHAR,@PRE)+';'
             PRINT 'parParms['+CONVERT(VARCHAR,@I)+'].Scale = '+CONVERT(VARCHAR,@SC)+';'
 END
 IF @TP IN ('CHAR','VARCHAR')
 BEGIN
  PRINT @str+'VarChar,'+ CONVERT(VARCHAR,@LN)+');'
 END
 IF @TP IN ('INT')
  PRINT @str+'Int'+');'
 IF @TP IN ('DATETIME')
  PRINT @str+'DateTime'+');'

 IF @CLTYPE='1'
  PRINT 'parParms['+CONVERT(VARCHAR,@I)+'].Value = '
 IF @CLTYPE='2'
  PRINT 'parParms['+CONVERT(VARCHAR,@I)+'].Direction = ParameterDirection.Output; '
 SET @I=@I+1
 FETCH NEXT FROM CUR INTO  @P,@CLTYPE,@TP,@PRE,@LN,@SC
END
CLOSE CUR
DEALLOCATE CUR
IF @type=1
BEGIN
 print 'parParms['+CONVERT(VARCHAR,@I)+'] = new SqlParameter("@intRetVal", SqlDbType.Int,4);'
 print 'parParms['+CONVERT(VARCHAR,@I)+'].Direction = ParameterDirection.ReturnValue; '

 PRINT '  SQLHelper.ExecuteNonQuery(SQLHelper.ConnectionString, CommandType.StoredProcedure, "'+@PrcName+'", parParms);'
-- PRINT 'Selection.exeProc("'+@PrcName+'", parParms);'
        PRINT 'if (parParms['+CONVERT(VARCHAR,@I)+'].Value.ToString().Trim().Equals("0"))'
        PRINT '{'
        PRINT '  Response.Write("<script language=javascript>alert('''+'" + parParms['+CONVERT(VARCHAR,@I-1)+'].Value.ToString().Trim() + "'');window.opener.location.href=window.opener.location.href;window.returnValue=''OK'';parent.close();</script>");'
        PRINT '}'
        PRINT 'else'
        PRINT '{'
        PRINT '    Response.Write("<script language=javascript>alert('''+'" + parParms['+CONVERT(VARCHAR,@I-1)+'].Value.ToString().Trim() + "'');</script>");'
        PRINT '}'
END
ELSE
 print 'parParms['+CONVERT(VARCHAR,@I)+'] = new SqlParameter("@intRetVal", SqlDbType.Int,4);'
 print 'parParms['+CONVERT(VARCHAR,@I)+'].Direction = ParameterDirection.ReturnValue; '

 PRINT '  SQLHelper.ExecuteDataset(SQLHelper.ConnectionString, CommandType.StoredProcedure, "'+@PrcName+'", parParms);'
        PRINT 'if (parParms['+CONVERT(VARCHAR,@I)+'].Value.ToString().Trim().Equals("0"))'
        PRINT '{'
        PRINT '  Response.Write("<script language=javascript>alert('''+'" + parParms['+CONVERT(VARCHAR,@I-1)+'].Value.ToString().Trim() + "'');window.opener.location.href=window.opener.location.href;window.returnValue=''OK'';parent.close();</script>");'
        PRINT '}'
        PRINT 'else'
        PRINT '{'
        PRINT '    Response.Write("<script language=javascript>alert('''+'" + parParms['+CONVERT(VARCHAR,@I-1)+'].Value.ToString().Trim() + "'');</script>");'
        PRINT '}'
BEGIN
     PRINT 'DisplayGrid1.FillGridData("'+@PrcName+'", parParms);'
END

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值