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


         开发一个项目或者开发一个应用系统初期大多数都是从数据库,类,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 intAs Delete from [Variables] Where ID = @ID 

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

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

    CREATE PROCEDURE [AddUpdateVariables] (@ID int@VarName varchar@VarDesc varchar@VarType varcharAs 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@VarTypeselect 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注入漏洞检测。

  • 相关阅读:
    人性的经典总结54句
    系统程序员成长计划文本处理(XML解析器)
    系统程序员成长计划-像机器一样思考(二)
    Android输入事件流程
    系统程序员成长计划文本处理(INI解析器)
    request范围内共享属性 request_attribute.jsp
    系统程序员成长计划-像机器一样思考(三)
    系统程序员成长计划-像机器一样思考(一)
    Android IPC机制详解
    系统程序员成长计划文本处理(一)状态机(1)
  • 原文地址:https://www.cnblogs.com/zhuqil/p/1636460.html
Copyright © 2020-2023  润新知