超级简单:共享两个自动生成存储过程的工具

     开发一个项目或者开发一个应用系统初期大多数都是从数据库,类,UI界面开始的。其中最令人厌烦的是写些简单的CRUD的存储过程,以及调用这些存储过程的方法的类。

     我花了很多时间在网上寻找,去找一个能根据能数据库中一个存在的数据表,为我们产生大部分存储过程和调用这些存储过程C#代码的实用的程序。这里共享两个我觉得还不错的程序给大家。

第一个是SQLAutoGen,如下图:

  
  

    程序地址:http://www.codeproject.com/KB/database/SQLAutoGen.aspx

    这是通过迭代我们选择数据表的列,来产生我们需要的代码。通过使用选择一些不同列(将出现在where子句中),使生产脚本变得相当智能。 (见下面的示例代码示例)
    看上面图片,能抵得说很多话,它来表明这个应用程序的操作。
    下面是这些代码,通过程序以不同的方式迭代本身,这里一个结合了SqlClient和SqlSMO访问数据库,得到table和columns等信息:

代码
// Code to iterate tables             
private  ServerConnection serverConnection  =   null ;

private   void  btnGo_Click( object  sender, EventArgs e)

{

this .Cursor  =  Cursors.WaitCursor;

lstTables.Items.Clear();

SqlConnection objCn 
=   new  SqlConnection(sqlControl1.ConnectionString);

serverConnection 
=   new  ServerConnection(objCn);

Server server 
=   new  Server(serverConnection);

TableCollection objTables 
=  server.Databases[sqlControl1.DatabaseName].Tables;

foreach  (Table objTable  in  objTables)

{

lstTables.Items.Add(objTable.Name);

}

this .Cursor  =  Cursors.Default;

}

 

 

代码
  // Snippet to show column iteration and generation of script.


if  (chkSelect.Checked)

{

strSQL 
=   " CREATE PROCEDURE [GetAll "   +  strTableName  +   " "   +  Environment.NewLine;

strSQL 
+=   "  As Select  " ;

foreach  (Column item  in  server.Databases[sqlControl1.DatabaseName].Tables[strTableName].Columns)

{

keyCount
++ ;

strSQL 
+=   " [ "   +  item.Name.ToString()  +   " ] " ;

if  (keyCount  <  server.Databases[sqlControl1.DatabaseName].Tables[strTableName].Columns.Count) strSQL  +=   " , "   +  Environment.NewLine;

}

strSQL 
+= "  from [ "   +  strTableName  +   " ] " ;

txtSQL.Text 
+=  strSQL  +  Environment.NewLine  +  Environment.NewLine;

}

 下面是一个示例表画面,以及随后产生的脚本。

 

 

代码
CREATE   PROCEDURE   [ GetAllVariables ]   As   Select   [ ID ] [ VarName ] [ VarDesc ] [ VarType ]   from   [ Variables ]  

CREATE   PROCEDURE   [ DeleteVariables ]  ( @ID   int As   Delete   from   [ Variables ]   Where  ID  =   @ID  

CREATE   PROCEDURE   [ AddVariables ]  ( @VarName   varchar @VarDesc   varchar @VarType   varchar As   Insert   Into   [ Variables ]  ( VarName, VarDesc, VarType)  Values  (  @VarName @VarDesc @VarType select   SCOPE_IDENTITY () 

CREATE   PROCEDURE   [ UpdateVariables ]  ( @ID   int @VarName   varchar @VarDesc   varchar @VarType   varchar As   Update   [ Variables ]   set  VarName  =   @VarName , VarDesc  =   @VarDesc , VarType  =   @VarType   Where  ID  =   @ID  

CREATE   PROCEDURE   [ AddUpdateVariables ]  ( @ID   int @VarName   varchar @VarDesc   varchar @VarType   varchar As   Begin   If  ( Select  ID  from   [ Variables ]   Where  ID  =   @ID <>   0   Begin   Update   [ Variables ]   set  VarName  =   @VarName , VarDesc  =   @VarDesc , VarType  =   @VarType   Where  ID  =   @ID   End   Else   Begin   Insert   Into   [ Variables ]  ( VarName, VarDesc, VarType)  Values  (  @VarName @VarDesc @VarType select   SCOPE_IDENTITY ()  End   End  

 

 

第二个是codeplex上面的程序:Stored Procedure Generator (for SQL Server 2000/2005) ,界面如下图所示:

 

解决方案的结构如下:

项目地址:http://spgen.codeplex.com/

代码不是特别的难,有兴趣可以自己下载研究。这个程序产生的存储过程中的where子句中的列是固定的,注定了没有第一个程序那么灵活。

为了方便,这里直接提供了代码下载地址:

1、/Files/zhuqil/SQLGenSource.zip

2、/Files/zhuqil/SP_Gen_Public_SourceCodes_VS2005.zip 

这里也向大家推荐这下面两个网站,写着写着到了今年的最后一天了,期待明年能将简单做到极致。

1、http://www.codeproject.com/

2、http://www.codeplex.com/

博客园,地球人都知道。

 



(全文完)


以下为广告部分

您部署的HTTPS网站安全吗?

如果您想看下您的网站HTTPS部署的是否安全,花1分钟时间来 myssl.com 检测以下吧。让您的HTTPS网站变得更安全!

SSL检测评估

快速了解HTTPS网站安全情况。

安全评级(A+、A、A-...)、行业合规检测、证书信息查看、证书链信息以及补完、服务器套件信息、证书兼容性检测等。

SSL证书工具

安装部署SSL证书变得更方便。

SSL证书内容查看、SSL证书格式转换、CSR在线生成、SSL私钥加解密、CAA检测等。

SSL漏洞检测

让服务器远离SSL证书漏洞侵扰

TLS ROBOT漏洞检测、心血漏洞检测、FREAK Attack漏洞检测、SSL Poodle漏洞检测、CCS注入漏洞检测。

转载于:https://www.cnblogs.com/zhuqil/archive/2009/12/31/1636460.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值