zoukankan      html  css  js  c++  java
  • 新工作 Day19 周一

    1、今天写linq查询,表关联为什么还有顺序。。。前面出现的表要放在前面,不然会认不到。。。等于号也不能用,只能用equals ,以后可以改进下语法吧,还是放宽些好,技术上不难实现的。

    from a in b

    join c in d on a.xx equals c.xxx

    2、IE下表格宽度不指定的话,会缩的很小,要设个100%才行,而chrome则不用(不知是否特例,项目中是出现了这情况。用chrome调好了,换成IE就变了)

    3、安排了重构一个公共项目,加上UI,弄个Demo,这个很好,可以借此再熟悉一下项目,相当于重做一个系统。

    4、不引用那些js和css了,合并压缩引用一个就可以,网上找了个工具【JSCompress】,但不能把大文件夹下所有文件压缩进来,只能一个个文件夹去选。同事说MVC有压缩的功能,Bundle加行代码。没试过,就算可以,也还是要把源文件引进来,显得比较杂。

    5、数据库有个存储过程,传入表名,可以生成实体类的文本,可以在项目中手动新建实体类,然后把代码复制进去。以前公司是用t4模板直接生成,现在用存储过程,也挺新鲜的。。。

    就是按表的字段生成实体。现在都用T4模板或EF了,看了下也没什么特别的,这种古老技术应该不至于是公司什么机密吧。贴出来抛砖引玉,大家共同进步。

    if exists (select * from sysobjects where id = object_id(N'[dbo].[XXX存储过程名字]') and OBJECTPROPERTY(id, N'isProcedure') = 1)
    drop procedure [dbo].[XXX存储过程名字]
    GO
    
    CREATE PROCEDURE [dbo].[XXX存储过程名字]                        
        @TableName varchar(50),
        @NameSpace varchar(50)
    AS
        declare
        @sFieldName varchar(50),
        @sIsPk varchar(1),    
        @sDataType varchar(50),
        @tdescription nvarchar(50),
        @sdescription nvarchar(50),
        @sResult varchar(max),
        @sFieldLength varchar(50),
        @prec varchar(50),
        @scale varchar(50),
        @insert1 varchar(max),
        @insert2 varchar(max),
        @update varchar(max),
        @key varchar(100),
        @isnullable varchar(10)
        
        if @NameSpace is null or @NameSpace = ''
        begin
            Select @NameSpace = Name From Master..SysDataBases Where DbId=(Select Dbid From Master..SysProcesses Where Spid = @@spid)     
        end    
        select @tdescription = cast(isnull(g.[value], c.name) as nvarchar(50))
        from sysobjects c
        left join sys.extended_properties g on 
        c.id=g.major_id and g.minor_id=0
        where c.Name = @TableName
    
    
        declare FieldName cursor for     
        SELECT c.name, t.name, c.length, c.prec, c.scale, c.isnullable, cast(isnull(g.[value], c.name) as nvarchar(50)) description, case when c.name = p.COLUMN_NAME then 1 else 0 end IsPk  
        from syscolumns C
        left join sysobjects O on  C.id=O.id
        left join systypes t on t.xtype = c.xtype
        left join INFORMATION_SCHEMA.KEY_COLUMN_USAGE p on p.TABLE_NAME = O.Name
        left join sys.extended_properties g on g.major_id = C.id and g.minor_id =  C.colid
        WHERE O.xType='U' and t.name <> 'sysname' and O.Name = @TableName
        order by colorder
    
        OPEN FieldName
    
        set @sResult = ''
    
        FETCH NEXT FROM FieldName
        INTO @sFieldName, @sDataType, @sFieldLength, @prec, @scale, @isnullable, @sdescription, @sIsPk
    
        While @@FETCH_STATUS = 0
        Begin
                set @sResult = @sResult + '        /// <summary>' + char(13)
                set @sResult = @sResult + '        /// ' + @sdescription + char(13)
                set @sResult = @sResult + '        /// </summary>' + char(13)
            if @sIsPk = '1'
            begin
                set @sResult = @sResult + '        [Key]' + char(13)
            end
            set @sResult = @sResult + '        [Description("'+ @sdescription +'")]' + char(13)
                
            if @sDataType = 'datetime' or @sDataType = 'smalldatetime'
            Begin
                
                set @sResult = @sResult + '        public Nullable<DateTime> ' + @sFieldName + ' { get; set; }' + char(13)+ char(13)
            End
    
            else if @sDataType = 'real'or @sDataType = 'float'
            Begin
                If @isnullable = 0
                    set @sResult = @sResult + '        public double ' + @sFieldName + ' { get; set; }' + char(13)+ char(13)
                Else
                    set @sResult = @sResult + '        public Nullable<double> ' + @sFieldName + ' { get; set; }' + char(13)+ char(13)
            End
    
            else if @sDataType = 'numeric'or @sDataType = 'decimal' or @sDataType = 'money' or @sDataType = 'smallMoney'
            Begin
                If @isnullable = 0
                    set @sResult = @sResult + '        public decimal ' + @sFieldName + ' { get; set; }' + char(13)+ char(13)
                Else
                    set @sResult = @sResult + '        public Nullable<decimal> ' + @sFieldName + ' { get; set; }' + char(13)+ char(13)
            End
    
            else if @sDataType = 'int' or @sDataType = 'smallint' or @sDataType = 'tinyint' or @sDataType = 'bigint'
            Begin
                If @isnullable = 0
                    set @sResult = @sResult + '        public int ' + @sFieldName + ' { get; set; }' + char(13)+ char(13)
                Else
                    set @sResult = @sResult + '        public Nullable<int> ' + @sFieldName + ' { get; set; }' + char(13)+ char(13)
            End
    
            else if @sDataType = 'varchar' or @sDataType = 'char' or @sDataType = 'nvarchar' or @sDataType = 'nchar'
            Begin
                
                set @sResult = @sResult + '        public string ' + @sFieldName + ' { get; set; }' + char(13)+ char(13)
            End
    
            else if @sDataType = 'bit'
            Begin            
                If @isnullable = 0
                    set @sResult = @sResult + '        public bool ' + @sFieldName + ' { get; set; }' + char(13)+ char(13)
                Else
                    set @sResult = @sResult + '        public Nullable<bool> ' + @sFieldName + ' { get; set; }' + char(13)+ char(13)
            End
            else
            Begin           
                set @sResult = @sResult + '        public string ' + @sFieldName + ' { get; set; }' + char(13)+ char(13)
            End
    
            FETCH NEXT FROM FieldName
            INTO @sFieldName, @sDataType, @sFieldLength, @prec, @scale, @isnullable, @sdescription,@sIsPk
        End
    
        Close FieldName
        DEALLOCATE FieldName
    
        set @sResult =  'using XXX项目中要引用的;'  + char(13)
                        +'using System;'   + char(13)
                        +'using System.Collections.Generic;'  + char(13)
                        +'using System.ComponentModel.DataAnnotations;'  + char(13)
                        +'using System.ComponentModel.DataAnnotations.Schema;'  + char(13)
                        +'using System.Linq;'  + char(13)
                        +'using System.Text;'  + char(13)
                        +'namespace 项目命名空间.'+ @NameSpace +''  + char(13)
                        +'{'  + char(13)
                       +'    /// <summary>' + char(13)
                       +'    /// ' + @tdescription + char(13)
                       +'    /// </summary>' + char(13)
                       +'    [Table("'+ @TableName +'")]' + char(13)    
                       +'    public class '+ @TableName +' '  + char(13)
                       +'    {'  + char(13)
                       + @sResult + char(13) + '    }' + char(13) + '}'
        print @sResult
    GO

    下班开了周例会,弄得比较迟。电脑看太多,眼睛痛,早点去床上听《三体》吧。。。

    ======================

    用了下【JSCompress】,基本能满足目前的需求了,有些不够人性化的:

    1、只能选文件,不能选文件夹,好在可以拖进去,只好在文件夹上按F3,搜出所有要打包的,拖进去,合并压缩成一个。

    2、压缩要求严格,如{a:b,},后面的逗号一般是没事的,能去掉当然是最好。但这软件提示IE8会不支持之类,就报错不压缩了。这几个js是公共文件,本不想改,现在只好把相应的多余逗号去掉,提交SVN。

    var a = {x:"y",};
    console.log(a)
    显示:Object {x: "y"}

    3、有个选项是为每个js生成.min,本来合并的时候不会用到这功能,结果除了合并的js之外,每次都会把列表最下方那个js也生成一个.min.js。。。好在有选项可以关掉,不然SVN里多出一个来每次都要删也很烦

    能压缩js也能压缩css,还是挺好用的,目前也没找到其它什么工具。真是奇怪,这么常用的,大家可能都是用集成的工具或命令,有时还是单独的程序好些(一般都是项目内为了提高效率用的,我这是要压缩合并,给其它项目用。)。

  • 相关阅读:
    poj 1475 Pushing Boxes 推箱子(双bfs)
    poj 1806 Frequent values(RMQ 统计次数) 详细讲解
    poj 2846 Repository
    poj Ping pong LA 4329 (树状数组统计数目)
    POJ 1962-Corporative Network (并查集)
    hdu 2217 Visit
    nyoj304 节能
    与R纠缠的两件事——rownames和子集--转载
    七步精通Python机器学习--转载
    win10专业版激活(亲测可用)
  • 原文地址:https://www.cnblogs.com/liuyouying/p/5158626.html
Copyright © 2011-2022 走看看