`
wyf
  • 浏览: 436592 次
  • 性别: Icon_minigender_1
  • 来自: 唐山
社区版块
存档分类
最新评论

sql 生成(c#model类)代码的存储过程

 
阅读更多
GO
/****** 对象:  StoredProcedure [dbo].[pro_GenerateModel]    脚本日期: 08/04/2012 11:26:43 ******/
IF  EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[pro_GenerateModel]') AND type in (N'P', N'PC'))
DROP PROCEDURE [dbo].[pro_GenerateModel]
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
/*****************************************************
** DECRIPTION: 生成(c#model类)代码的存储过程
** VERSION      AUTH          DATE          Defect No			DESC
** --------  ------------  ------------  -----------------   ------------------------------
** V000.0.1    pukuimin     08/04/2012							新建程序
** --------  ------------  ------------  -----------------   -------------------------------
*******************************************************/
CREATE procedure [dbo].[pro_GenerateModel](
					@TbName NVARCHAR(200) ---表名
)
as
begin
DECLARE @TableName     NVARCHAR(200)  --表名
DECLARE @ConstructParams     VARCHAR(8000)  --构造参数
DECLARE @ConstructGetValue     VARCHAR(8000) --构造赋值
DECLARE @FieldPropertys     VARCHAR(8000) --属性和字段
SELECT @TableName = @TbName,@ConstructParams = '',@FieldPropertys='',@ConstructGetValue=''

if isnull(@TableName,'')=''
begin
	print '表名不能为空!'
	return 0
end 

----输出存储过程名
--PRINT 'CREATE PROCEDURE dbo.pro_get_'+dbo.fun_get_UpperFirst(@tablename)+'('


SELECT 
----构造参数
@ConstructParams = @ConstructParams + dbo.fun_get_tabspace(3)+dbo.fun_get_cssdt_by_sqldt(DATA_TYPE)+' '+dbo.fun_get_LowerFirst(COLUMN_NAME)+','+CHAR(10),   ---- CHAR(10)换行符
----构造赋值
@ConstructGetValue = @ConstructGetValue + dbo.fun_get_tabspace(2)+'this.'+dbo.fun_get_UpperFirst(COLUMN_NAME)+' = '+dbo.fun_get_LowerFirst(COLUMN_NAME)+';'+CHAR(10),
---属性和字段
@FieldPropertys = @FieldPropertys + dbo.fun_get_tabspace(2)+
'private '+dbo.fun_get_cssdt_by_sqldt(DATA_TYPE)+' '+dbo.fun_get_LowerFirst(COLUMN_NAME)+
    (CASE 
		WHEN DATA_TYPE='NVARCHAR' OR DATA_TYPE='VARCHAR' OR DATA_TYPE='CHAR'OR DATA_TYPE='NCHAR' OR DATA_TYPE='NTEXT' OR DATA_TYPE='TEXT' OR DATA_TYPE='OUT'
        THEN ' = ""'
		when data_type='uniqueidentifier' or DATA_TYPE='image' or DATA_TYPE='variant'
		then ' = null'
    ELSE
        ' = '+dbo.fun_get_cssdt_by_sqldt(DATA_TYPE)+'.MinValue'
    END)
+';'+
CHAR(10)+dbo.fun_get_tabspace(2)+'/// <summary>'+
CHAR(10)+dbo.fun_get_tabspace(2)+'/// '+dbo.fun_get_comment(@tablename,COLUMN_NAME)+
CHAR(10)+dbo.fun_get_tabspace(2)+'/// <summary>'+
CHAR(10)+dbo.fun_get_tabspace(2)+'public '+dbo.fun_get_cssdt_by_sqldt(DATA_TYPE)+' '+dbo.fun_get_UpperFirst(COLUMN_NAME)+
CHAR(10)+dbo.fun_get_tabspace(2)+'{'+
CHAR(10)+dbo.fun_get_tabspace(3)+'get { return '+dbo.fun_get_LowerFirst(COLUMN_NAME)+';}'+
CHAR(10)+dbo.fun_get_tabspace(3)+'set { '+dbo.fun_get_LowerFirst(COLUMN_NAME)+' = value;}'+
CHAR(10)+dbo.fun_get_tabspace(2)+'}'+CHAR(10)
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = @TableName 
set @ConstructParams=LEFT(@ConstructParams,LEN(@ConstructParams)-2) ----去掉 ‘,’ 和 换行符
set @ConstructGetValue=LEFT(@ConstructGetValue,LEN(@ConstructGetValue)-1)
set @FieldPropertys=LEFT(@FieldPropertys,LEN(@FieldPropertys)-1)
print dbo.fun_get_tabspace(1)+'/// <summary>'
print dbo.fun_get_tabspace(1)+'/// '+@TableName
print dbo.fun_get_tabspace(1)+'/// <summary>'
print dbo.fun_get_tabspace(1)+'[Serializable]'
print dbo.fun_get_tabspace(1)+'public class '+@TableName+'Model'  --    
print dbo.fun_get_tabspace(1)+'{'
print dbo.fun_get_tabspace(2)+'/// <summary>'
print dbo.fun_get_tabspace(2)+'/// 无参构造函数 '
print dbo.fun_get_tabspace(2)+'/// <summary>'
print dbo.fun_get_tabspace(2)+'public '+@TableName+'Model(){}'
print dbo.fun_get_tabspace(2)+'/// <summary>'
print dbo.fun_get_tabspace(2)+'/// 有参构造函数 '
print dbo.fun_get_tabspace(2)+'/// <summary>'
print dbo.fun_get_tabspace(2)+'public '+@TableName+'Model('
print @ConstructParams
print dbo.fun_get_tabspace(2)+')'
print dbo.fun_get_tabspace(2)+'{'
print @ConstructGetValue
print dbo.fun_get_tabspace(2)+'}'
print @FieldPropertys
print dbo.fun_get_tabspace(1)+'}'
end
/*


exec [pro_GenerateModel] 'stuinfo'




*/

 

分享到:
评论

相关推荐

    根据SQLServer数据表生成C#实体类。生成数据库模型.zip

    2. 生成C#实体类:使用提供的工具或源码,通过连接到SQLServer数据库,读取表结构信息,自动生成C#类。这些类通常会包含公共属性,对应数据库表的字段,以及可能的getter和setter方法。 3. SQLHelper类:这是一个...

    C#代码模板生成器;Model层;DAL层;BLL层代码自动生成

    这部分代码负责与数据库进行交互,包括执行SQL查询、存储过程等。代码生成器可以根据数据库的表结构自动生成相应的数据访问接口和实现,如ADO.NET或Entity Framework中的DbContext。这样,开发者就可以专注于业务...

    自动生成DAL层的MODEL的C#代码、以及通用存储过程

    Code Generation Tool(C#)是专门针对SQL SERVER 2005以上数据库实现自动生成DAL层的MODEL的C#代码。在分层开发中,将数据库表实现类操作是常用的方法,但是枯燥和繁琐的代码编写占用了我们大量的时间,于是通过使用...

    Oracle数据库表生成C#实体类

    "Oracle数据库表生成C#实体类"是一个实用的小工具,它的主要目的是自动化这个过程,避免开发者手动编写繁琐的实体类代码。虽然这个工具可能存在一些小问题,但它可以大大提高开发效率,尤其是在处理大量表结构时。 ...

    C#自动生成MODEL

    3. 生成代码:根据解析的结果,生成符合C#语法的MODEL类代码。 4. 自定义配置:允许用户自定义生成的代码模板,以满足特定需求。 5. 集成到项目:将生成的MODEL类添加到项目中,与其它业务逻辑进行集成。 标签中的...

    c#编写的生成Model实体源码.zip.zip

    总的来说,这个项目结合了C#、WPF和数据库存储过程,提供了一个自动化工具,用于根据数据库表结构自动生成C# Model实体源代码。这对于需要频繁进行数据库操作的开发者来说,无疑是一个非常实用的工具,能够减少手动...

    超强的C#代码生成工具,支持ACCESS,ORACLE,SQL 最新

    软件功能及特点: 1、类反射工厂,泛型接口,三层架构,缓存机制,存储过程,分页,用户控件,一气呵成 ...8、自动生成SqlServer和MySql存储过程 9、数据库操作可选择SQL语句和存储过程 10、其它实用小工具

    生成C#中的Model,BLL,DAL文件

    本工具正是针对这种架构,帮助开发者快速生成C#代码中的关键组件:Model、BLL和DAL。 **Model层**(模型层)是业务对象的定义,包含了应用程序中使用的数据结构和实体。在C#中,Model通常包含一系列的类,这些类...

    CodeSmith代码生成模板(Access和Sql server) C#语言。

    文件中包括两种5个文件: 1、Oledb 包括使用access...4、Model 包含一个一次生成所有Model中实体类的模板。 CodeSmith模板可以由用户自定义。其语法与C#语法类似。 ****************请支持原创****************

    sql server数据库表生成实体类生成工具

    本篇文章将深入探讨“SQL Server数据库表生成实体类生成工具”,以及与之相关的C#编程、SQLServer和实体类等主题。 首先,SQL Server是Microsoft推出的一种关系型数据库管理系统,广泛应用于企业级数据存储和处理。...

    Model代码生成器(支持SQLServer、MySQL、Orcal;本地、远程数据库).zip

    它可以自动根据数据库表结构生成C# Model实体类,节省了开发者手动编写这些代码的时间,同时支持多种数据库系统和连接方式,增加了使用的灵活性。对于任何使用C#进行数据库开发的团队或个人来说,这样的工具无疑能...

    c# 基于sqlserver 快速开发工具 三层架构生成工具

    本文将深入探讨基于C#语言,针对SQL Server数据库的三层架构(Model-BLL-DAL)生成工具,以及如何利用这些工具进行高效开发。 首先,"C#"是一种面向对象的编程语言,广泛应用于Windows桌面应用、Web应用及游戏开发...

    代码生成器,C#代码生成器

    【代码生成器与C#代码生成器】 代码生成器是一种工具,它能够自动化地创建代码,减少程序员手动编写重复性代码的工作量。在C# .NET环境中,代码生成器尤其受欢迎,因为它可以帮助开发者快速构建应用的基础结构,如...

    C#代码生成器(生成MVC三层代码)

    代码生成器可以自动根据数据库结构生成相应的DAL代码,包括对存储过程的调用。存储过程是预编译的SQL语句集合,能够提高查询性能,减少网络传输的数据量,同时提供了一种安全的封装数据库操作的方式。 业务逻辑层...

    C#代码生成器源码.rar

    C#代码生成器正是为了这一目标而设计的工具,它可以帮助开发者自动生成常见的编程元素,如实体类、数据库操作类、业务逻辑类以及存储过程,大大减轻了手动编写这些代码的工作量。本文将对"C#代码生成器源码.rar"进行...

    C#根据模型动态生成SQL

    这就是EF的动态SQL生成能力。 为了进一步理解这个过程,我们需要知道EF的几个关键概念: 1. **DbSet**:表示数据库中的一个表或视图,T是对应的实体类。 2. **DbContext**:包含所有DbSet属性,用于管理数据库连接...

    c#三层架构代码生成器

    Codematic 是一款为 C#... Codematic 同时提供方便的数据库查询管理,SQL脚本生成,存储过程生成,数据库文档生成,Web项目文件发布,代码生成自动导出文件等多项开发工作中常用到的功能,您可以很方便地进行项目开发。

    postgres 代码生成器

    使用时,开发者可能需要指定数据库连接信息、表名或视图名,然后代码生成器会根据这些信息自动生成对应的C#代码文件。 在实际开发中,使用Postgres代码生成器可以减少手动编码的时间,使开发者能够更专注于业务逻辑...

    c# Winform通过T4模板生成model、数据库访问层、业务层

    2. **数据库访问层(DAL)**:这部分代码负责与数据库进行实际的交互,执行SQL查询或存储过程。通过T4模板,我们可以自动生成用于CRUD(创建、读取、更新、删除)操作的方法,这些方法将调用ADO.NET或其他ORM框架如...

    C#自动生成三层结构实体类

    根据sql server 数据库自动生成三层结构的实体类 生成DAL时可以选择企业库或非企业库模式,企业库用到的DLL已经附带在本资源中,DataRecordTable.cs放在生成后的Model中 如果选择非企业库,则需要用到MyData.cs文件,...

Global site tag (gtag.js) - Google Analytics