成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

存儲過程自動轉成C#源碼過程

開發 后端
本文是一個國外程序員寫的自動將存儲過程轉成C#源碼的存儲過程。

本文介紹將存儲過程轉成C#源碼的方法。以下是存儲過程的源代碼:

  1. CREATE     PROCEDURE dbo.tools_CS_SPROC_Builder  
  2. (  
  3. @objName nvarchar(100)  
  4. )  
  5. AS  
  6. /*  
  7. ___________________________________________________________________  
  8. Name:  CS SPROC Builder  
  9. Version: 1  
  10. Date:  20/06/2004  
  11. Author:  Paul McKenzie  
  12. Description: Call this stored procedue passing the name of your   
  13.   database object that you wish to insert/update  
  14.   from .NET (C#) and the code returns code to copy  
  15.   and paste into your application.  This version is  
  16.   for use with "Microsoft Data Application Block".  
  17. Sample:    
  18.   EXEC tools_CS_SPROC_Builder 'InsertSQL'  
  19. */ 
  20. SET NOCOUNT ON  
  21.  
  22. DECLARE @parameterCount int 
  23. DECLARE @errMsg varchar(100)  
  24. DECLARE @parameterAt varchar(1)  
  25. DECLARE @connName varchar(100)  
  26.  
  27. SET @connName='conn.Connection' 
  28. SET @parameterAt='' 
  29.     
  30. SELECT   
  31.  dbo.sysobjects.name AS ObjName,   
  32.  dbo.sysobjects.xtype AS ObjType,  
  33.  dbo.syscolumns.name AS ColName,   
  34.  dbo.syscolumns.colorder AS ColOrder,   
  35.  dbo.syscolumns.length AS ColLen,   
  36.  dbo.syscolumns.colstat AS ColKey,   
  37.  dbo.systypes.xtype  
  38. INTO #t_obj  
  39. FROM           
  40.  dbo.syscolumns INNER JOIN  
  41.  dbo.sysobjects ON dbo.syscolumns.id = dbo.sysobjects.id INNER JOIN  
  42.  dbo.systypes ON dbo.syscolumns.xtype = dbo.systypes.xtype  
  43. WHERE       
  44.  (dbo.sysobjects.name = @objName)   
  45.  AND   
  46.  (dbo.systypes.status < > 1)   
  47. ORDER BY   
  48.  dbo.sysobjects.name,   
  49.  dbo.syscolumns.colorder  
  50.  
  51. SET @parameterCount=(SELECT count(*) FROM #t_obj)  
  52.  
  53. IF(@parameterCount< 1) SET @errMsg='No Parameters/Fields found for ' + @objName  
  54.  
  55. IF(@errMsg is null)  
  56.  BEGIN  
  57.   PRINT 'try' 
  58.   PRINT '   {' 
  59.   PRINT '   SqlParameter[] paramsToStore = new SqlParameter[' + cast(@parameterCount as varchar) + '];' 
  60.   PRINT '' 
  61.     
  62.   DECLARE @source_name nvarchar,@source_type varchar,@col_name nvarchar(100),@col_order int,@col_type varchar(20),@col_len int,@col_key int,@col_xtype int,@col_redef varchar(20)  
  63.    
  64.   DECLARE cur CURSOR FOR  
  65.   SELECT * FROM #t_obj  
  66.   OPEN cur  
  67.   -- Perform the first fetch.  
  68.   FETCH NEXT FROM cur  
  69.   INTO @source_name,@source_type,@col_name,@col_order,@col_len,@col_key,@col_xtype  
  70.    
  71.   if(@source_type=N'U') SET @parameterAt='@' 
  72.   -- Check @@FETCH_STATUS to see if there are any more rows to fetch.  
  73.   WHILE @@FETCH_STATUS = 0  
  74.   BEGIN  
  75.    SET @col_redef=(SELECT   
  76.       CASE @col_xtype  
  77.     WHEN 34 THEN 'Image' 
  78.     WHEN 35 THEN 'Text' 
  79.     WHEN 48 THEN 'TinyInt' 
  80.     WHEN 52 THEN 'SmallInt' 
  81.     WHEN 56 THEN 'Int' 
  82.     WHEN 58 THEN 'SmallDateTime' 
  83.     WHEN 59 THEN 'Real' 
  84.     WHEN 60 THEN 'Money' 
  85.     WHEN 61 THEN 'DateTime' 
  86.     WHEN 62 THEN 'Float' 
  87.     WHEN 99 THEN 'NText' 
  88.     WHEN 104 THEN 'Bit' 
  89.     WHEN 106 THEN 'Decimal' 
  90.     WHEN 122 THEN 'SmallMoney' 
  91.     WHEN 127 THEN 'BigInt' 
  92.     WHEN 165 THEN 'VarBinary' 
  93.     WHEN 167 THEN 'VarChar' 
  94.     WHEN 173 THEN 'Binary' 
  95.     WHEN 175 THEN 'Char' 
  96.     WHEN 231 THEN 'NVarChar' 
  97.     WHEN 239 THEN 'NChar' 
  98.     ELSE '!MISSING' 
  99.  
  100.       END AS C)   
  101.    --Write out the parameter  
  102.    PRINT '   paramsToStore[' + cast(@col_order-1 as varchar)   
  103.     + '] = new SqlParameter("' + @parameterAt + @col_name  
  104.     + '", SqlDbType.' + @col_redef  
  105.     + ');' 
  106.  
  107.    --If the type is a string then output the size declaration  
  108.    IF(@col_xtype=231)OR(@col_xtype=167)OR(@col_xtype=175)OR(@col_xtype=99)OR(@col_xtype=35)  
  109.     BEGIN  
  110.     PRINT '   paramsToStore[' + cast(@col_order-1 as varchar)   
  111.      + '].Size=' + cast(@col_len as varchar) + ';' 
  112.     END  
  113.    PRINT '   paramsToStore['+ cast(@col_order-1 as varchar)   
  114.     + '].Value =  ;' 
  115.       -- This is executed as long as the previous fetch succeeds.  
  116.       FETCH NEXT FROM cur  
  117.    INTO @source_name,@source_type,@col_name,@col_order,@col_len,@col_key,@col_xtype   
  118.   END  
  119.   PRINT '' 
  120.   PRINT '   SqlHelper.ExecuteNonQuery(' + @connName + ', CommandType.StoredProcedure,"' + @objName + '", paramsToStore);' 
  121.   PRINT '   }' 
  122.   PRINT 'catch(Exception excp)' 
  123.   PRINT '   {' 
  124.   PRINT '   }' 
  125.   PRINT 'finally' 
  126.   PRINT '   {' 
  127.   PRINT '   ' + @connName + '.Dispose();' 
  128.   PRINT '   ' + @connName + '.Close();' 
  129.   PRINT '   }'    
  130.   CLOSE cur  
  131.   DEALLOCATE cur  
  132.  END  
  133.  
  134. if(LEN(@errMsg)>0) PRINT @errMsg  
  135. DROP TABLE #t_obj  
  136. SET NOCOUNT ON  
  137.  
  138. GO  
  139.  

示例:存儲過程名'1_Proc_admin_publish'

  1. exec dbo.tools_CS_SPROC_Builder '1_Proc_admin_publish' 

顯示結果如下(C#源碼):

  1. try 
  2.    {  
  3.    SqlParameter[] paramsToStore = new SqlParameter[4];  
  4.    
  5.    paramsToStore[0] = new SqlParameter("@memberName", SqlDbType.VarChar);  
  6.    paramsToStore[0].Size=60;  
  7.    paramsToStore[0].Value =  ;  
  8.    paramsToStore[1] = new SqlParameter("@type", SqlDbType.Int);  
  9.    paramsToStore[1].Value =  ;  
  10.    paramsToStore[2] = new SqlParameter("@static", SqlDbType.Int);  
  11.    paramsToStore[2].Value =  ;  
  12.    paramsToStore[3] = new SqlParameter("@returnType", SqlDbType.Int);  
  13.    paramsToStore[3].Value =  ;  
  14.    
  15.    SqlHelper.ExecuteNonQuery(conn.Connection, CommandType.StoredProcedure,"1_Proc_admin_publish", paramsToStore);  
  16.    }  
  17. catch(Exception excp)  
  18.    {  
  19.    }  
  20. finally 
  21.    {  
  22.    conn.Connection.Dispose();  
  23.    conn.Connection.Close();  
  24.    } 

以上就是自動將存儲過程轉成C#源碼的存儲過程,希望對有些人會有幫助。

【編輯推薦】

  1. C#基礎知識一覽
  2. 學習C#自定義用戶控件
  3. C#自定義組件和用戶組件屬性的設置
  4. C#編程中的組件-事件-委托
  5. Visual C#自定義組件的設計:Pop3Com組件
責任編輯:book05 來源: cnblogs
相關推薦

2009-08-13 17:58:34

C#存儲過程

2009-08-17 18:30:29

C# SQL Serv

2009-08-07 03:47:00

2009-08-06 16:18:38

C#調用SQL存儲過程

2010-04-16 11:22:08

Oracle存儲過程

2010-07-08 17:15:04

SQL Server存

2009-08-04 10:29:06

在C#中使用存儲過程

2009-09-01 11:07:58

C#項目

2009-08-05 08:42:41

C#中用Oracle執DataSet

2010-09-07 16:46:56

SQL語句nsert

2010-07-15 12:38:14

SQL Server存

2009-09-03 17:54:04

C#開發瀏覽器

2009-08-26 09:48:48

C#異步套接字

2009-09-02 16:20:22

C#動態創建數組

2009-08-25 11:13:28

C#獲取邏輯硬盤信息

2009-08-25 15:48:03

C#數組操作

2009-08-14 15:07:00

C#編譯過程

2009-07-03 10:33:07

C#創建COM組件

2020-11-26 10:33:44

MySQL存儲函數

2009-09-17 10:04:32

LINQ存儲過程
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 香蕉视频一区二区 | 伊人网站在线 | 日韩一区二区在线观看 | 91亚洲精品国偷拍自产在线观看 | 久久成人精品一区二区三区 | 亚洲精品一区二区三区中文字幕 | 欧美极品在线观看 | 国精日本亚洲欧州国产中文久久 | 午夜网站视频 | 久久久久黄色 | 男女下面一进一出网站 | 欧美日韩亚 | 国产色婷婷精品综合在线手机播放 | 欧美一区二区三区久久精品 | 成人精品国产 | 不卡在线一区 | 亚洲天天干| 精品毛片视频 | 天堂在线中文字幕 | 国产精品久久久久久久久免费樱桃 | 99免费视频 | avmans最新导航地址 | 色眯眯视频在线观看 | 在线观看视频一区 | 亚洲欧美一区在线 | 一区二区视频在线观看 | 亚洲一区在线日韩在线深爱 | 日韩视频高清 | 中文字幕日韩在线观看 | 日干夜操 | 黄页网址在线观看 | 国产精品毛片久久久久久久 | 97人人澡人人爽91综合色 | 影音先锋中文字幕在线观看 | 丝袜毛片 | 久久成人免费观看 | 成人免费av在线 | 成人在线视频一区 | 欧美日韩一区二区在线 | 欧美视频偷拍 | 九九综合 |