生成(c#检查输入数据、web界面控件)代码的存储过程

简介: USE [test] GO /****** 对象: StoredProcedure [dbo].[pro_GenerateCheckInput_webControl] 脚本日期: 08/13/2012 10:10:16 ******/...
USE [test]
GO
/****** 对象:  StoredProcedure [dbo].[pro_GenerateCheckInput_webControl]    脚本日期: 08/13/2012 10:10:16 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
/*****************************************************
** DECRIPTION: 生成(c#检查输入数据、web界面控件)代码的存储过程
** 大于两个字符,并以cd或id结尾的,用Combobox控件
** VERSION      AUTH          DATE          Defect No			DESC
** --------  ------------  ------------  -----------------   ------------------------------
** V000.0.1    pukuimin     08/04/2012							新建程序
** --------  ------------  ------------  -----------------   -------------------------------
*******************************************************/
ALTER procedure [dbo].[pro_GenerateCheckInput_webControl](
					@ProName NVARCHAR(200), ---存储过程名
					@TableName NVARCHAR(200) ---表名
)
--WITH ENCRYPTION ---加锁
as
begin
declare @tempProperty    varchar(200)--临时字段
declare @DATA_TYPE    varchar(200)--临时数据类型
declare @ckinput varchar(8000)  ----输入检查
declare @tempValue varchar(200)  --从控件取值
declare @webControls varchar(8000) ----web页面控件代码
declare @tempcomment varchar(100)
SELECT @tempProperty='',@DATA_TYPE='',@ckinput='',@tempValue='',@webControls='',@tempcomment=''

if isnull(@ProName,'')='' or isnull(@TableName,'')=''
begin
	print '存储过程名或表名不能为空!'
	return 0
end 
set @webControls=@webControls+'<table cellSpacing="0" cellPadding="0" width="100%" border="0">'+CHAR(10)

 if exists (select * from sys.all_parameters where object_id = object_id(@ProName))  
 begin  
	select 
	@DATA_TYPE=type_name(user_type_id),  --sql类型
	@tempProperty=dbo.fun_get_UpperFirst(replace([name],'@','')), --参数
	@tempcomment=dbo.fun_get_comment(@TableName,@tempProperty),
	@tempValue=(
				case 
				when Right([name],2)='id' or Right([name],2)='cd'
				then 'this.DropDownList'+@tempProperty+'.SelectedValue.Trim()'
				else 
				'this.TextBox'+@tempProperty+'.Text.Trim()'
				end 
				),
	@ckinput=@ckinput+
    (CASE 
    when  [name]='@opr_typ' or [name]='@ret' then ''
	WHEN @DATA_TYPE='NVARCHAR' OR @DATA_TYPE='VARCHAR' OR @DATA_TYPE='CHAR' OR @DATA_TYPE='NCHAR' OR @DATA_TYPE='NTEXT' OR @DATA_TYPE='TEXT' 
    THEN dbo.fun_get_tabspace(3)+'if('+@tempValue+'.Length==0)'+CHAR(10)+
		dbo.fun_get_tabspace(3)+'{'+CHAR(10)+
		dbo.fun_get_tabspace(4)+'strErr+="'+@tempcomment+'不能为空!\\n";'+CHAR(10)+
		dbo.fun_get_tabspace(3)+'}'+CHAR(10)
	WHEN @DATA_TYPE='BIGINT'
	THEN dbo.fun_get_tabspace(3)+'if (!DataValidate.IsNumber('+@tempValue+'))'+CHAR(10)+
		dbo.fun_get_tabspace(3)+'{'+CHAR(10)+
		dbo.fun_get_tabspace(4)+'strErr+="'+@tempcomment+'格式不正确!\\n";'+CHAR(10)+
		dbo.fun_get_tabspace(3)+'}'+CHAR(10)
	WHEN @DATA_TYPE='INT'
	THEN dbo.fun_get_tabspace(3)+'if (!DataValidate.IsInt('+@tempValue+'))'+CHAR(10)+
		dbo.fun_get_tabspace(3)+'{'+CHAR(10)+
		dbo.fun_get_tabspace(4)+'strErr+="'+@tempcomment+'格式不正确!\\n";'+CHAR(10)+
		dbo.fun_get_tabspace(3)+'}'+CHAR(10)
	WHEN @DATA_TYPE='NUMERIC'
	THEN dbo.fun_get_tabspace(3)+'if (!DataValidate.IsDecimalSign('+@tempValue+'))'+CHAR(10)+
		dbo.fun_get_tabspace(3)+'{'+CHAR(10)+
		dbo.fun_get_tabspace(4)+'strErr+="'+@tempcomment+'格式不正确!\\n";'+CHAR(10)+
		dbo.fun_get_tabspace(3)+'}'+CHAR(10)
    ELSE
		''
    END),  ------dbo.[fun_get_cssdt_by_sqldt](@DATA_TYPE)+'.MinValue)
	@webControls=@webControls+
(case 
when  [name]='@opr_typ' or [name]='@ret' then ''
else 
dbo.fun_get_tabspace(1)+'<tr>'+
char(10)+dbo.fun_get_tabspace(1)+ '<td height="25" width="30%" align="right">'+@tempcomment+':</td>'+
char(10)+dbo.fun_get_tabspace(1)+'<td height="25" width="*" align="left">'+(
				case 
				when Right([name],2)='id' or Right([name],2)='cd'
				then char(10)+dbo.fun_get_tabspace(1)+'<asp:DropDownList ID="DropDownList'+@tempProperty+'" runat="server" Width="120px"></asp:DropDownList>'
				else char(10)+dbo.fun_get_tabspace(1)+'<asp:TextBox id="TextBox'+@tempProperty+'" runat="server" Width="120px"></asp:TextBox>'
				end 
				)+
char(10)+dbo.fun_get_tabspace(1)+'</td>'+char(10)+dbo.fun_get_tabspace(1)+'</tr>'+char(10)
end)
	from sys.all_parameters where object_id = object_id(@ProName)

 end
else 
	begin
		print '没有此存储过程!'
		return 0
	end
set @webControls=@webControls+'</table>'



print dbo.fun_get_tabspace(3)+'#region 检查输入数据正确性'
print dbo.fun_get_tabspace(3)+'string strErr="";'
print @ckinput
print dbo.fun_get_tabspace(3)+'#endregion'
print char(10)+char(10)+char(10)
print '<!--输入控件 -->'
print @webControls
end
/*

exec [pro_GenerateCheckInput_webControl] 'pro_set_Stuinfo','stuinfo'


*/

相关文章
|
15天前
|
编解码 前端开发 JavaScript
构建高效响应式Web界面:现代前端框架的比较
【4月更文挑战第9天】在移动设备和多样屏幕尺寸盛行的时代,构建能够适应不同视口的响应式Web界面变得至关重要。本文深入探讨了几种流行的前端框架——Bootstrap、Foundation和Tailwind CSS,分析它们在创建响应式设计中的优势与局限。通过对比这些框架的栅格系统、组件库和定制化能力,开发者可以更好地理解如何选择合适的工具来优化前端开发流程,并最终实现高性能、跨平台兼容的用户界面。
|
1月前
|
网络协议 Java Nacos
nacos常见问题之在web界面 上下线服务时报错 400如何解决
Nacos是阿里云开源的服务发现和配置管理平台,用于构建动态微服务应用架构;本汇总针对Nacos在实际应用中用户常遇到的问题进行了归纳和解答,旨在帮助开发者和运维人员高效解决使用Nacos时的各类疑难杂症。
30 0
|
1月前
|
C# Windows
C#通过代码实现快捷键编辑
C#通过代码实现快捷键编辑
|
1月前
|
前端开发 开发者 UED
构建响应式Web界面:Flexbox的力量
【2月更文挑战第25天】 在现代网页设计中,创建能够适应不同屏幕尺寸的布局是至关重要的。Flexbox,一种CSS布局模式,提供了强大的工具来轻松地设计和调整灵活的响应式界面。本文将深入探讨Flexbox的核心概念,并通过实例展示如何使用它来构建美观、灵活且易于维护的响应式Web界面。
|
21天前
|
编解码 前端开发 开发者
构建响应式Web界面:Flexbox与Grid布局的深度对比
【4月更文挑战第4天】 在现代前端开发中,构建灵活且响应式的用户界面是至关重要的。随着移动设备浏览量的增加,能够适应不同屏幕尺寸和分辨率的布局技术变得必不可少。Flexbox和Grid是CSS提供的两种强大的布局机制,它们各自以独特的方式解决了响应式设计的挑战。本文将深入探讨Flexbox和Grid的核心概念、使用场景和性能考量,为开发者提供在面对不同布局需求时做出明智选择的依据。
|
1月前
|
SQL C# 数据库
C# 读取多条数据记录导出到 Word 标签模板
C# 读取多条数据记录导出到 Word 标签模板
|
1月前
|
安全 数据处理 C#
C# Post数据或文件到指定的服务器进行接收
C# Post数据或文件到指定的服务器进行接收
|
1月前
|
编解码 前端开发 开发者
构建响应式Web界面:Flexbox的力量
【2月更文挑战第28天】 在现代网页设计中,创建能在不同设备上保持一致性和功能性的响应式界面是至关重要的。Flexbox,一个CSS布局模块,为前端开发者提供了强大工具来轻松实现灵活的布局设计。本文将深入探讨Flexbox的核心概念、使用场景以及如何通过它来优化响应式设计流程。
|
1月前
|
前端开发 开发者 UED
构建响应式Web界面:Flexbox与Grid布局的深度解析
【2月更文挑战第28天】 在现代前端开发中,打造灵活且适应不同屏幕尺寸的用户界面是至关重要的。随着移动设备的普及,响应式设计已经成为网页制作不可或缺的一部分。本文将深入探讨两种强大的CSS布局模块——Flexbox和Grid,它们如何简化布局创建过程,并赋予设计师更大的灵活性去构建动态和流畅的响应式界面。通过对这两种技术的比较、使用场景分析以及代码示例,读者将能够更好地理解何时以及如何使用这些工具来提升前端项目的质量和效率。
16 0
|
1月前
|
编解码 前端开发 开发者
构建响应式Web界面:Flexbox布局的全面指南
【2月更文挑战第28天】 在当今多变的设备屏幕尺寸和分辨率中,创建一个能够适应不同视口的响应式Web界面至关重要。本文深入探讨了CSS Flexbox布局模块,它是一种设计灵活且强大的方式来创建复杂的响应式布局。我们将透过概念解析、关键属性讲解以及实际案例分析,帮助前端开发者掌握Flexbox的核心原理和应用技巧,以实现流畅的页面布局调整和优化用户体验。