在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脚本从数据库表中生成对应的输入控件相关推荐

  1. 使用sql脚本创建数据库表

    准备脚本语句: CREATE TABLE `test` (`title` varchar(100) DEFAULT NULL,`author` varchar(10) DEFAULT NULL,`di ...

  2. 用sql语句对数据库表中的数据进行增删改

    如何使用sql语句对mysql数据库中表的数据进行增删改 这里新创了一个school数据库,在下面创建一张名为student表,创建student表的sql语句代码如下: #使用school数据库 u ...

  3. PowerDesigner 中SQL文件、数据库表反向生成PDM

    1      反向生成PDM 1)        创建一个空的PDM模型(选择对应的DBMS): 2)        选择[Database]--[Update Model from Database ...

  4. 使用SQL脚本创建数据库,操作主键、外键与各种约束(MS SQL Server)

    在实际开发中,可能很少人会手写sql脚本来操作数据库的种种.特别是微软的MS SQL Server数据库,它的SQL Server Management Studio对数据库的图形化操作极致简便,从而 ...

  5. mysql外键约束脚本_使用SQL脚本创建数据库,操作主键、外键与各种约束(MS SQL Server)...

    在实际开发中,可能很少人会手写sql脚本来操作数据库的种种.特别是微软的MS SQL Server数据库,它的SQL Server Management Studio对数据库的图形化操作极致简便,从而 ...

  6. 利用T-SQL处理SQL Server数据库表中的重复行

    Duplicate rows in a SQL Server database table can become a problem. We will see how we can find and ...

  7. columnproperty server sql_导出SQL Server数据库表中字段的说明/备注

    时 间:2013-02-18 09:09:11 作 者:摘 要:导出SQL Server数据库表中字段的说明/备注 正 文: 打开SQL企业管理器 ,找到你要导出用户表字段信息的那个数据库 ,点击工具 ...

  8. SQL去除数据库表中tab、空格、回车符等特殊字符的解决方法

    SQL去除数据库表中tab.空格.回车符等特殊字符的解决方法 参考文章: (1)SQL去除数据库表中tab.空格.回车符等特殊字符的解决方法 (2)https://www.cnblogs.com/ml ...

  9. 数组数据通过sql语句转为数据库表衔接到from或join后进行直接或关联查询

    Mybatis之数组数据通过sql语句转为数据库表衔接到from或join后进行直接或关联查询 外部数据 当前项目表格数据(表名:service_info) 将外部数据转为Table表格,与servi ...

  10. sql查询数据库表中重复数值

    sql查询数据库表中重复数值 -- 查询表中id重复的值 select id from 表名 group by id having count(*) > 1--查询表中的重复记录,重复记录是根据 ...

最新文章

  1. Java 8 Stream API详解--转
  2. Java多线程:线程属性
  3. gevent-tutorial翻译和解读
  4. Codeforces Round #730 (Div. 2) D2. RPD and Rap Sheet (Hard Version) 交互 + k进制的转换
  5. 今天提交了一个patch开心,呵呵
  6. org.springframework.web.context.ContextLoaderListener 解决方案
  7. 用create table 命令建立表
  8. 【Hadoop学习】Super用户以其他用户的名义执行操作
  9. PHP逆波兰表达式的算法
  10. 毕业设计不要再做 XX 管理系统了
  11. 大牛熬夜整理,京东网易滴滴,天津农行软开java面试题合集,大牛已于上个月入职华为!
  12. Delphi中使用Imageen控件将图像文件转换成PDF
  13. cad安装日志文件发生错误_CAD安装问题,CAD安装时为什么显示内部发生错误急?...
  14. 封装获取一个URL地址问号后面传递的参数信息以及哈希值HASH 方法
  15. javaWeb--MVC
  16. 试验设计——拉丁超立方抽样
  17. web项目移动端在线预览(word格式转html)
  18. 笔记本也瑜枷,联想展示最新概念机
  19. ftp文件上传和下载
  20. 淘宝url中的spm编码是怎么生成的呢?

热门文章

  1. 633. 平方数之和
  2. Python模拟新浪微博登录转载,是我的那篇资料来源
  3. 【面向代码】学习 Deep Learning(四) Stacked Auto-Encoders(SAE)
  4. 《从NLP反作弊技术看马蜂窝注水事件》笔记
  5. 机器学习数学基础之极限
  6. java list加入listview_将卡添加到ListView
  7. 三个点在同一个半圆的概率_圆形水池中的四只小鸭子出现在同一个半圆中的概率是?...
  8. 共享usb接口给虚拟机_多网卡虚拟机如何设置?收藏绝对有用
  9. linux 桌面共享xfce,漂亮而且轻量级的桌面-----xfce安装
  10. Spring简单的定时器