FineUI之使用SQL脚本从数据库表中生成对应的输入控件
在WEB开发时。常常须要根据数据库表中的字段建立对应的输入控件,来获取输入的数据。每次都须要按字段来敲,显然太低效。并且easy出错。这里提供一个SQL脚本生成对应输入控件的方法。
USE DBDemo
DECLARE @TEMP_TABLE_NAME NVARCHAR(512)
DECLARE @WIDTH NVARCHAR(50)SET @TEMP_TABLE_NAME='Stuff'
SET @WIDTH='200'SELECT '<f:'+TOKEN+' runat="server" ID="'+TOKEN+'_'+COLUMN_NAME+'" Label="'--没有描写叙述的字段,使用COLUMN_NAME作为Label+CAST(CASE WHEN LEN(CAST(REMARK AS NVARCHAR(150)))<=0 THEN COLUMN_NAME WHEN LEN(CAST(ISNULL(REMARK,'') AS NVARCHAR(150)))<=0 THEN COLUMN_NAMEELSE REMARK ENDAS NVARCHAR(150))+'" '+' Width="'+@WIDTH+'"'+'></f:'+TOKEN+'>' AS DATA --标记串--,TABLE_NAME,COLUMN_NAME,DATA_TYPE,TOKEN,EXTEND_STR,REMARK
FROM
(SELECT TEMP_SCHEMA_COLUMNS.TABLE_NAME ,--AS '表名',TEMP_SCHEMA_COLUMNS.COLUMN_NAME ,--AS '列名',TEMP_SCHEMA_COLUMNS.DATA_TYPE ,--AS '类型',TEMP_EXTENDED_PROPERTIES.value AS REMARK ,--AS '描写叙述',(CASE WHEN TEMP_SCHEMA_COLUMNS.DATA_TYPE='int' THEN 'NumberBox'WHEN TEMP_SCHEMA_COLUMNS.DATA_TYPE='numeric' THEN 'NumberBox'WHEN TEMP_SCHEMA_COLUMNS.DATA_TYPE='smallint' THEN 'NumberBox'WHEN TEMP_SCHEMA_COLUMNS.DATA_TYPE='datetime' THEN 'DatePicker'WHEN TEMP_SCHEMA_COLUMNS.DATA_TYPE='bit' THEN 'CheckBox' ELSE 'TextBox'END) AS TOKEN,--标记(CASE WHEN TEMP_SCHEMA_COLUMNS.DATA_TYPE='int' THEN 'DecimalPrecision="0"'WHEN TEMP_SCHEMA_COLUMNS.DATA_TYPE='smallint' THEN 'DecimalPrecision="0"'ELSE ''END) AS EXTEND_STR --特殊属性标记串FROM((SELECT TEMP_TABLES.name AS table_name,TEMP_COLUMNS.name AS column_name,TEMP_COLUMNS.id AS table_id,TEMP_COLUMNS.colid AS column_id FROM(SELECT * FROM sysobjects WHERE type='U') AS TEMP_TABLESINNER JOIN(SELECT * FROM syscolumns ) AS TEMP_COLUMNS ONTEMP_TABLES.id=TEMP_COLUMNS.id) AS TEMP_TABLE_COLUMNS INNER JOIN(select TABLE_NAME,COLUMN_NAME,DATA_TYPE from information_schema.columns ) AS TEMP_SCHEMA_COLUMNSON TEMP_SCHEMA_COLUMNS.TABLE_NAME=TEMP_TABLE_COLUMNS.table_name AND TEMP_SCHEMA_COLUMNS.COLUMN_NAME=TEMP_TABLE_COLUMNS.column_name FULL JOIN(SELECT value,major_id,minor_id FROM sys.extended_properties) AS TEMP_EXTENDED_PROPERTIESON TEMP_TABLE_COLUMNS.table_id=TEMP_EXTENDED_PROPERTIES.major_idAND TEMP_TABLE_COLUMNS.column_id=TEMP_EXTENDED_PROPERTIES.minor_id)WHERE TEMP_SCHEMA_COLUMNS.TABLE_NAME=@TEMP_TABLE_NAME
) AS TEMP_TABLE
说明:
1.DBDemo是数据库名称。依实际情况指定。
2.參数@TEMP_TABLE_NAME为相生成输入控件的数据库表名,依实际情况指定。
这里是Stuff。
3.參数@WIDTH为控件的宽度,依实际情况指定。
这里是200。
4.TOKEN为根据字段类型生成相应的标记。实际使用中。可能相应的标记不太准确。请依使用情况作出调整。
5.EXTEND_STR是特殊属性标记串。
这里对NumberBox控件中。为int和smallint限定小数位数为0.即DecimalPrecision="0"。
6.控件中的Label,以字段的描写叙述作为首选,假设没有字段描写叙述的。则使用字段名。
生成的标记例如以下图
Web页面中使用例如以下图
生成的效果图例如以下图
转载请注明出处http://blog.csdn.net/xxdddail/article/details/37877691
转载于:https://www.cnblogs.com/yutingliuyl/p/6849173.html
FineUI之使用SQL脚本从数据库表中生成对应的输入控件相关推荐
- 使用sql脚本创建数据库表
准备脚本语句: CREATE TABLE `test` (`title` varchar(100) DEFAULT NULL,`author` varchar(10) DEFAULT NULL,`di ...
- 用sql语句对数据库表中的数据进行增删改
如何使用sql语句对mysql数据库中表的数据进行增删改 这里新创了一个school数据库,在下面创建一张名为student表,创建student表的sql语句代码如下: #使用school数据库 u ...
- PowerDesigner 中SQL文件、数据库表反向生成PDM
1 反向生成PDM 1) 创建一个空的PDM模型(选择对应的DBMS): 2) 选择[Database]--[Update Model from Database ...
- 使用SQL脚本创建数据库,操作主键、外键与各种约束(MS SQL Server)
在实际开发中,可能很少人会手写sql脚本来操作数据库的种种.特别是微软的MS SQL Server数据库,它的SQL Server Management Studio对数据库的图形化操作极致简便,从而 ...
- mysql外键约束脚本_使用SQL脚本创建数据库,操作主键、外键与各种约束(MS SQL Server)...
在实际开发中,可能很少人会手写sql脚本来操作数据库的种种.特别是微软的MS SQL Server数据库,它的SQL Server Management Studio对数据库的图形化操作极致简便,从而 ...
- 利用T-SQL处理SQL Server数据库表中的重复行
Duplicate rows in a SQL Server database table can become a problem. We will see how we can find and ...
- columnproperty server sql_导出SQL Server数据库表中字段的说明/备注
时 间:2013-02-18 09:09:11 作 者:摘 要:导出SQL Server数据库表中字段的说明/备注 正 文: 打开SQL企业管理器 ,找到你要导出用户表字段信息的那个数据库 ,点击工具 ...
- SQL去除数据库表中tab、空格、回车符等特殊字符的解决方法
SQL去除数据库表中tab.空格.回车符等特殊字符的解决方法 参考文章: (1)SQL去除数据库表中tab.空格.回车符等特殊字符的解决方法 (2)https://www.cnblogs.com/ml ...
- 数组数据通过sql语句转为数据库表衔接到from或join后进行直接或关联查询
Mybatis之数组数据通过sql语句转为数据库表衔接到from或join后进行直接或关联查询 外部数据 当前项目表格数据(表名:service_info) 将外部数据转为Table表格,与servi ...
- sql查询数据库表中重复数值
sql查询数据库表中重复数值 -- 查询表中id重复的值 select id from 表名 group by id having count(*) > 1--查询表中的重复记录,重复记录是根据 ...
最新文章
- Java 8 Stream API详解--转
- Java多线程:线程属性
- gevent-tutorial翻译和解读
- Codeforces Round #730 (Div. 2) D2. RPD and Rap Sheet (Hard Version) 交互 + k进制的转换
- 今天提交了一个patch开心,呵呵
- org.springframework.web.context.ContextLoaderListener 解决方案
- 用create table 命令建立表
- 【Hadoop学习】Super用户以其他用户的名义执行操作
- PHP逆波兰表达式的算法
- 毕业设计不要再做 XX 管理系统了
- 大牛熬夜整理,京东网易滴滴,天津农行软开java面试题合集,大牛已于上个月入职华为!
- Delphi中使用Imageen控件将图像文件转换成PDF
- cad安装日志文件发生错误_CAD安装问题,CAD安装时为什么显示内部发生错误急?...
- 封装获取一个URL地址问号后面传递的参数信息以及哈希值HASH 方法
- javaWeb--MVC
- 试验设计——拉丁超立方抽样
- web项目移动端在线预览(word格式转html)
- 笔记本也瑜枷,联想展示最新概念机
- ftp文件上传和下载
- 淘宝url中的spm编码是怎么生成的呢?
热门文章
- 633. 平方数之和
- Python模拟新浪微博登录转载,是我的那篇资料来源
- 【面向代码】学习 Deep Learning(四) Stacked Auto-Encoders(SAE)
- 《从NLP反作弊技术看马蜂窝注水事件》笔记
- 机器学习数学基础之极限
- java list加入listview_将卡添加到ListView
- 三个点在同一个半圆的概率_圆形水池中的四只小鸭子出现在同一个半圆中的概率是?...
- 共享usb接口给虚拟机_多网卡虚拟机如何设置?收藏绝对有用
- linux 桌面共享xfce,漂亮而且轻量级的桌面-----xfce安装
- Spring简单的定时器