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

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'

*/
时间: 2024-09-29 09:37:07

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

基于MVC4+EasyUI的Web开发框架形成之旅--界面控件的使用

在前面介绍了两篇关于我的基于MVC4+EasyUI技术的Web开发框架的随笔,本篇继续介绍其中界面部分的一些使用知识,包括控件的赋值.取值.清空,以及相关的使用. 我们知道,一般Web界面包括的界面控件有:单行文本框.多行文本框.密码文本框.下拉列表Combobox.日期输入控件.数值输入控件.单项选择.复选框.表格控件DataGrid.树形控件.布局控件.弹出式对话框.提示信息.列表控件等,这些界面控件的操作都有哪些不同,下面我们来逐一进行介绍. 1.单行文本框 使用easyui的控件,单行文

基于MVC4+EasyUI的Web开发框架形成之旅之界面控件的使用_javascript技巧

在前面介绍了两篇关于我的基于MVC4+EasyUI技术的Web开发框架的随笔,本篇继续介绍其中界面部分的一些使用知识,包括控件的赋值.取值.清空,以及相关的使用. 我们知道,一般Web界面包括的界面控件有:单行文本框.多行文本框.密码文本框.下拉列表Combobox.日期输入控件.数值输入控件.单项选择.复选框.表格控件DataGrid.树形控件.布局控件.弹出式对话框.提示信息.列表控件等,这些界面控件的操作都有哪些不同,下面我们来逐一进行介绍.   1.单行文本框 使用easyui的控件,单

网页WEB打印控件制作_实用技巧

在WEB系统中,打印的确是比较烦人的问题,如果我们能制作一个属于自己的自定义的打印插件,那么我们在后续自定义打印的时候能随心所欲的控制打印,这样的效果对于程序员来说是非常开心的一件事件,本文将自己开发编写的C# 制作的HTML打印插件分享出来,让有同样需求的朋友提供一个参考:此插件是基于Microsoft .NET Framework 2.0 开发的,缺点是每台客户端在安装插件时,必须要安装Microsoft .NET Framework 2.0 :本插件能实现 页眉.页脚.表头.标题.表尾的分

在asp.net中为Web用户控件添加属性和事件

asp.net|web|控件 在asp.net中为Web用户控件添加属性和事件 在90年代初,Microsoft为Web程序员提供的 Active Server Pages(ASP)革命性地改变了Web的编程.它可以利用十分易用的模型在Web服务器上动态生成HTML,并且很容易的实现了对数据库的访问,就当时来说,这是一项多么吸引人的技术,包括现在Internet上的许多web站点都是用Asp写的,我的同事前辈们更是玩Asp的高手,经历这么多年而不衰,可见他的成功. 但是,技术是在不断的发展着,引

Web打印控件smsx.cab使用说明

原文 Web打印控件smsx.cab使用说明  在项目开发中,经常会用到页面打印的功能,在ASP.NET环境下推荐一款web打印控件smsx.cab.    使用方法:一般会先定义一个用于打印的母版页(Print.Master),在母版页上做好布局,包括页面布局.js 的引用.smsx.cab控件加载.打印和预览按钮的放置.      下载链接:http://download.csdn.net/detail/nxgliming/6668999      母版页(Print.Master):  

分享几款免费的web打印控件

问题描述 在WEB系统中,打印的确是个烦人的问题----特别是你的应用环境又有很多种类的打印机.如果自己开发打印控件,可能因为项目时间紧而来不及.前段时间有机会接触了一下WEB打印.在博客园.CSDN以及各个论坛上找了老半天,终于顺利的完成了公司项目.现在就结合我的应用体验,将市面上的所有的免费打印控件为大家做一个介绍.1.DLPrinter这个打印控件完全免费,界面还不错,使用也较为简单,支持打印预览.直接打印.可设置页眉.页脚.页边距.打印份数.纸张大小等信息,悲剧的是这大哥在07年做了第二

一个非常好用的Web打印控件

web|web打印|控件 呵呵,本来是准备把该控件的使用说明给翻译出来的,但是它自己带的帮助实在是太多,功能实在是太复杂了,它的帮助有110K,我可没那么多时间呀,呵呵,大家自己看E文帮助使用把.就简单说说它的几个特点把,该控件也分两大功能模块,一个是基本功能,完全免费的说一个是加强功能,需要购买许可它使用HTML,VbScript,JavaScript三种语言来编写打印代码.其他的我就不说了,下面是该打印控件的位置:http://www.meadroid.com/scriptx/

聊天主题:如何用C#定制个性化的界面控件

控件 聊天主题:如何用C#定制个性化的界面控件 主持人和专家介绍主持人:Guest_jswang_MS 微软专家: 韩定一(Guest_Danny_MS),赵彦(Guest_Francs_MS) Host Guest_jswang_MS says: 欢迎大家参加微软在线技术聊天. Host Guest_jswang_MS says: 本次聊天的主题是如何用C#定制个性化的界面控件 Host Guest_jswang_MS says: 首先,让我们欢迎来自微软全球技术中心工程师赵彦,韩定一 Hos

用托管C++编写自定义Web组合控件

什么是自定义的组合控件 自定义的Web组合控件正如它名字说的那样:在单个控件中集成了一个或多个服务端程序及HTML控件.自定义的组合控件在功能上与用户控件非常类似,最大的不同之处是,它只存在于它自己的程序集中(或与其他控件共享),能被放在工具条中,并可提供它所包含控件的所见即所得视图方式. 另一方面,自定义Web组合控件比用户控件(user control)更加难创建,因为Visual Studio.NET的设计者们并没有提供可视化创建它们的任何工具,因此,问题是:为什么要用组合控件取代用户控件