成人免费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-09-02 16:20:22

C#動態創建數組

2009-08-26 09:48:48

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技術棧公眾號

主站蜘蛛池模板: 国产精品不卡一区二区三区 | 涩涩鲁亚洲精品一区二区 | 国产在线精品免费 | av免费网站在线观看 | 一区欧美 | 国产精品一区二区不卡 | 特一级毛片| 一级片在线视频 | 99pao成人国产永久免费视频 | 日本精品视频 | a免费视频 | 日韩视频在线观看一区二区 | 久久久久国产一区二区三区四区 | 国产精品一区二区在线免费观看 | 一级二级三级在线观看 | 欧美激情一区二区三区 | 日韩成人在线观看 | 久久狠狠 | 亚洲网址在线观看 | 黄色在线| 中文字幕 国产精品 | 成年人精品视频 | 久久av一区二区三区 | 国产aaaaav久久久一区二区 | 亚洲欧美综合精品久久成人 | 国产美女一区二区 | 久久久性色精品国产免费观看 | 日韩午夜在线观看 | 国产成人精品一区二区三区四区 | 蜜桃在线一区二区三区 | 中文在线一区二区 | 一区二区三区免费观看 | 男插女下体视频 | 久久久久中文字幕 | 国产一区二区三区四区hd | 欧美日韩国产精品一区 | 欧美视频二区 | 亚洲不卡一 | 久久久成人精品 | 国产精品成人国产乱一区 | www.国产91|