• 一行代码收集页


    1. 获取类实体的属性值
    //Object container
    //System.ComponentModel 命名空间
     PropertyDescriptor descriptor = TypeDescriptor.GetProperties(container).Find(propName, true);
    return descriptor.GetValue(container);

    2. .net2.0 跟.net1.0 的asp.net应用程序不能同时分配到同一个应用程序池上(w3p.exe)

    参考:http://blog.csdn.net/tiantian1980/archive/2008/05/30/2495417.aspx

    3. Host文件位置 :C:\WINDOWS\system32\drivers\etc

    4. Response.Redirect(http://www.0576sy.cn/); 后写不写Response.End(); 效果都是一样的.

    5.使用    Response.Buffer = false; 可以是使页面内容直接输出,而不是生成全部html(输出数据)后再输出,可以在页面生成或者需要执行一个长时间操作是使用,把要长时间执行的操作写到页面末尾</html><%DoJob()%>,或者在rotected override void Render(HtmlTextWriter writer) 的重载中调用,

    6.随机读取数据(MSSQL) Select * From Tablename Order By newId()

    7.设置首页跟收藏, 注意收藏时使用 js location.hostname(href) 存在访问权限问题,可以使用服务器脚本或静太指定
    <a href="#" onclick="window.external.AddFavorite('http://<%#Request.ServerVariables["HTTP_HOST"] %>', '<%#Setting.CompanyName %>');">收藏本公司</a>
    <a href="#" onclick="this.style.behavior='url(#default#homepage)';this.setHomePage(location.hostname);">设为首页</a>

    8.Select Into 与 Insert into  Select ...

    Select Into: 目标表(下面是NewShippers )不存在,语句执行后将创建
       SELECT Shippers.*, Link.Address, Link.City,
                       Link.Region, Link.PostalCode
    INTO NewShippers
    FROM Shippers
         JOIN LinkServer.DB.dbo.Shippers AS Link
           ON (Shippers.ShipperID = Link.ShipperID)

    Insert Into Select :待插入表已经存在

    INSERT INTO MyBooks(columns)
       SELECT title_id, title, type
       FROM titles
       WHERE type = 'mod_cook'

    SET IDENTITY_INSERT TableName ON--开启(可以显性插入Id)
    SET IDENTITY_INSERTTableName OFF--关闭
     

     9. FCK V2.* 在GB2312编码下上传文件乱码
    FCKeditor\editor\filemanager\browser\default下找到frmupload.html和frmresourceslist.html
    在Head里面加<meta http-equiv="content-type" content="text/html; charset=gb2312"> 

    10.Asp.net2.0 中App_Code 与App_Code.dll
    如果选择将App_Code目录上传到空间那么就要保证Bin目录下不要包含App_code.dll(发布网站时一般会生成)文件,即两个只能选一个,不然会出现两个程序集冲突的情况.

    11.Cache 类是线程安全的,在asp.net环境下不需要额外的代码

    12.JQuery中使用 $("input[name=searchType][checked]") 来选中一组名叫searchType的radio元素中已选中的那个

    13.GridView如果不绑定数据源控件,则以下两种方式,无法获取主键: e.Keys[0].ToString() e.Keys["id"].ToString() 请使用以下方式获取主键: gv.DataKeys[e.RowIndex].Value 13.GridView如果不绑定数据源控件,则以下两种方式,无法获取主键:
    e.Keys[0].ToString()
    e.Keys["id"].ToString()
    请使用以下方式获取主键:
    gv.DataKeys[e.RowIndex].Value

    15.将整型转化成二进制字符串表示MessageBox.Show( Convert.ToString(-1, 2));

    16.IIS7.0中禁止脚本运行,需要设置对应目录的处理程序映射,在高级里面取消执行脚本,(批量设置时在下放空白处点鼠标右键找到相应的菜单进行设置)

    17.强制浏览器站兼容模式显示<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />

    18.MSSQL拼接行数据
    Declare @className nvarchar(1000)
    Select @className=''  --注意一定要先初始化变量
    Select @className=@className + t.className +';'   From (Select ClassName From oblog_logclass  ) as t
    Select @className as CN

    19.可以在asp.net环境的线程中使用System.Web.Hosting.HostingEnvironment.MapPath("/")来将获取实际地址

    20.获取当天(或前后几天)凌晨时间,DateTime.Now.Date.AddDays(+-3)

    21. <%#txtTilte.Text%> 方式在页面上绑定一次后会创建一个匿名控件,视图状态会保存下来因此只要在条件“!IsPostBack”中绑定一次就可以了

    22.编辑页面内容(Web编辑器实现原理)地址栏输入:javascript:if(document.body.contentEditable=true);

    23.使用Function名称.Call或Apply来掉用js函数,实现事件触发的效果

      如:function ddl_change(){

            alert($(this).val());

         }

      是下拉框改变事件的处理函数,可以使用 ddl_change.call($("ddlProvince")[0],null,null); 来调用,这样$(this)就可以获取到ddlProvince控件了

    24.关闭模态弹窗后刷新主窗口,需要使用button按钮,LinkButton无效,$("btnRefresh").click();

    25.SQL dateAdd(day,0.9,'2011-11-07 23:59:59') 结果仍旧是2011-11-07 ... 即不满一天的会忽律

    26.LINQ 返回可能为空记录表的某字段MAX的安全作法
                    var retId = Ctx.SqlCmdTexts.Max(ent => (int?)ent.sequence);
                    int maxId = retId.HasValue ? retId.Value + 1 : 1;

    27.SqlCommand添加可空参数

            public void AddParameter(SqlCommand cmd, string parameterName, object value)
            {
                SqlParameter parameter = new SqlParameter(parameterName, value);
                if (value == null)
                {
                    parameter.IsNullable = true;
                    parameter.Value = DBNull.Value;
                }
                cmd.Parameters.Add(parameter);
            }

    28.使用SynchronizationContext.Current.Post"延迟"UI事件执行
    1.如使用ShowDialog打开的窗体,在关闭时先关闭窗体再显示提示信息则可以使用Post((o)=>{MessageBox(....)},null);
    2.使用ShowDialog打开的窗体回调时需要重打开一个新的也可以这样写
          SynchronizationContext.Current.Post((o) =>
           {
                   var btn = typeof(ToolStripButton).GetMethod("OnClick", BindingFlags.NonPublic | BindingFlags.Instance);
                    btn.Invoke(bindingNavigatorAddNewItem, new object[] { null });
           },null);

    29.使用System.Data.DataSetExtensions 可以让DataTable支持Linq
                DataTable dt = new DataTable();
                FillDataTable(dt);
                dt.AsEnumerable().Where(ent => ent.Field<int?>("Level") >= 3).ToList();

    30.复制DataTable的结构并填充制定页面的数据(客户端分页)
                DataTable dt = SqlHelper.ExecuteDataset(DBCtx.ConnStr, CommandType.Text, cmdText).Tables[0];
                _Total = dt.Rows.Count;
                DataTable dt2 = dt.Clone();
                foreach(var dr in dt.AsEnumerable().Skip(startRowIndex).Take(maximumRows))
                {
                    dt2.Rows.Add(dr.ItemArray);
                }
         
                return dt2;

    31.创建非聚集包含索引并制定索引填充因子
    CREATE NONCLUSTERED INDEX [索引名]
    ON [dbo].[表明]
    (
     [索引列名] ASC
    )
    INCLUDE ( 包含列1,包含列2)
    WITH ( fillfactor =80  , SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, IGNORE_DUP_KEY = OFF, ONLINE = OFF)
     ON [PRIMARY]

    32.Linq/Lambda 之分组统计实现

                List<BorrowTimeWinModel> list = new List<BorrowTimeWinModel>()
                {
                    new BorrowTimeWinModel(){MouldNo="223",UseCount=1,Barcode="1"},
                    new BorrowTimeWinModel(){MouldNo="223",UseCount=2,Barcode="1"},
                    new BorrowTimeWinModel(){MouldNo="223",UseCount=3,Barcode="5"},
                    new BorrowTimeWinModel(){MouldNo="223",UseCount=4,Barcode="1"},
                    new BorrowTimeWinModel(){MouldNo="221",UseCount=1,Barcode="1"},
                    new BorrowTimeWinModel(){MouldNo="221",UseCount=2,Barcode="1"},
                    new BorrowTimeWinModel(){MouldNo="221",UseCount=3,Barcode="5"},
                    new BorrowTimeWinModel(){MouldNo="221",UseCount=4,Barcode="1"}
                };

               var rList=  list.GroupBy(ent=>ent.MouldNo).Select(ent=>new {Name=ent.Key,Sum=ent.Sum(it=>it.UseCount),Max=ent.Max(it2=>it2.Barcode)}).ToList();
               foreach (var r in rList)
               {
                   Console.WriteLine(string.Format("Name:{0},Toatl:{1},Max:{2}", r.Name, r.Sum, r.Max));
               }

    按多个字段分组
                       var byM = builder.MOPTable.GroupBy(ent => new { ent.MCode, ent.MName }).Select(g =>
                            new { MCode = g.Key.MCode,
                                  MName = g.Key.MName,
                                  Cost=g.Sum(it=>it.Cost),
                                  Qty=g.First().Qty,
                                  Price = g.Sum(it => it.Cost) / g.First().Qty
                                }
                            );

    33.获取本机MAC,与NDS配置信息
                List<IPAddress> res = new List<IPAddress>();
                foreach (NetworkInterface nic in NetworkInterface.GetAllNetworkInterfaces())
                {
                    Console.WriteLine(nic.GetPhysicalAddress().ToString());//MAC
                   
               
                    if ((nic.OperationalStatus == OperationalStatus.Up) && (nic.NetworkInterfaceType != NetworkInterfaceType.Loopback))
                    {
                        foreach (IPAddress dns in nic.GetIPProperties().DnsAddresses)
                        {
                            if (!res.Contains(dns))
                                res.Add(dns);
                        }
                    }
                }

    34.动态加载窗体
    使用Assembly.LoadFrom("F.Studio.WinUI.exe") 要带扩展名,并且效率没Load搞
    参考:http://www.cnblogs.com/xuefeng1982/archive/2009/11/09/1598956.html
            private Form CreateForm(ModuleInfo info)
            {
                var a = System.IO.Path.GetFileNameWithoutExtension(info.Assembly);
                var t = Assembly.Load(a).GetType(info.Type, true);
                var frm = Activator.CreateInstance(t) as Form;
                return frm;     
            }

    菜单节点
          <ModuleInfo>
            <Id>8811</Id>
            <Title>合作伙伴</Title>
            <Key>be6a046b-1431-491c-97e6-70d5fd6bc001</Key>
            <ToolTip />
            <Assembly>FIStudio.WinUI.exe</Assembly>
            <Type>FIStudio.WinUI.UI.frmCooperatorMgr</Type>
            <Args />
            <IsShowDialog>false</IsShowDialog>
            <OrderId>10</OrderId>
          </ModuleInfo>

    35.返回指定泛型的基础类型Nullable.GetUnderlyingType(gType);

    36. licenses.licx 的解决方法

          在使用DevExpress控件的时候。每次对窗体进行更改的时候,都会出现一个对话框。发布的时候 也会出现一个对话框。之前的解决方法是在发布的时候把licenses.licx给删除掉,但是这个方法治标不治本。每次发布的时候都要删除,如果忘记删除了,还需要重新发布,让人很是抓狂。现通过Google,找到了解决方法:licenses.licx Properties 的Build Action 设置为无即可。

           深入的解决问题是很有必要的,这样解决问题的方法是一劳永逸的。

    p

    37.统计表记录数 

    SELECT a.name, b.rows

    FROM sysobjects AS a INNER JOIN

    sysindexes AS b ON a.id = b.id

    WHERE (a.type = 'u') AND (b.indid IN (0, 1))

    ORDER BY b.rows DESC

    38.剪切板到gridview

    var txt= Clipboard.GetText(TextDataFormat.Text).Replace(@"""","");
    var rows = txt.Split(new string[]{Environment.NewLine},StringSplitOptions.RemoveEmptyEntries);
    dataGridView1.Columns.Clear();
    bool first=true;
    foreach (var row in rows)
    {

    var cells= row.Split('\t');
    if(first)
    {
    for (int i = 0; i < cells.Length; i++)
    {
    dataGridView1.Columns.Add("c" + i, cells[i]);
    }
    first = false;
    }
    else{
    dataGridView1.Rows.Add(cells);
    }
    }
      

    // 使用这句可能导致资源管理器崩溃 Clipboard.Clear();
    Clipboard.SetText(" ");// ""会报错,需要一些空字符
    iKanBanBindingSource.DataSource = list;

     39.代码中配置EF链接字符串

       EntityConnectionStringBuilder ecb = new EntityConnectionStringBuilder();
                ecb.Metadata = "res://*/Model1.csdl|res://*/Model1.ssdl|res://*/Model1.msl";
                ecb.Provider = "System.Data.SqlClient";
                ecb.ProviderConnectionString = "data source=DatabaseServerName;initial catalog= DatabaseName;persist security info=True;user id=sa;password=YourPassword;multipleactiveresultsets=True;App=EntityFramework";
                YourEntity YEntity = new YourEntity(ecb.ConnectionString);

    40.一个触发器

    USE [JL_MFG]
    GO
    /****** Object:  Trigger [dbo].[trigMessageList]    Script Date: 12/15/2017 18:48:25 ******/
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    /****** Script for SelectTopNRows command from SSMS  ******/
    Create trigger [dbo].[Trig_Enterprise] 
    on [dbo].Enterprise
    after insert,update,delete
    as
    declare @log nvarchar(max)
    declare @loginTime nvarchar(50)
    declare @host_name nvarchar(50)
    declare @login_name nvarchar(50)
    declare @appName  nvarchar(100)
    declare @ip nvarchar(50)
    declare @inedV nvarchar(110)
    declare @insV nvarchar(110)
    declare @detV nvarchar(110)
    
    select
    @loginTime=a.login_time,   
    @host_name=a.host_name,  
    @login_name=a.login_name,  
    @appName=a.[program_name], 
    @ip=b.client_net_address 
    from sys.dm_exec_sessions a , sys.dm_exec_connections b
    where a.session_id=b.session_id and a.session_id = @@SPID;
    
    select @insV=EnterpriseDate From inserted
    Select @detV=EnterpriseDate From deleted
    set @log=@loginTime+','+@host_name+','+@login_name+','+@appName+','+@ip+','+@insV+','+@detV
    
    INSERT INTO [JL_MFG].[dbo].[analysis_Log]
               ([ReportId]
               ,[LogType]
               ,[KeyId]
               ,[KeyType]
               ,[Content]
               ,[AddTime]
               ,[Severity])
         VALUES
               (1
               ,''
               ,1
               ,0
               ,@log
               ,GETDATE()
               ,1)
    View Code

     41.一个触发器

     Create trigger safety
    
     On Database
    
     For drop_table
    
     as
    
       DECLARE  @event xml   
       DECLARE @tablesname varchar(1024)  
       set @event=EVENTDATA();  
       set @tablesname=@event.value('(/EVENT_INSTANCE/ObjectName)[1]', 'sysname')  
       if @tablesname='UserTable' and @tablesname='UserTable'  
       begin  
        PRINT 'sorry,you are not dba'  
        ROLLBACK ;  
       end 
    View Code

     42.批量删除

    SET ROWCOUNT 10
    delete_more:
         select 1
    
         delete from dbo.Alarm_Log where RecId<1000
    IF @@ROWCOUNT > 0 GOTO delete_more
    SET ROWCOUNT 0
    View Code

    43.一个正规表达式

    前三个字母固定若ABC|CDA|BBC 后面接1-9,然后是任意位数字

                var m = Regex.Match(ent.QTeam, "^(HDL|HDF|HDD){1}[1-9]{1}[0-9]*$", RegexOptions.Singleline | RegexOptions.IgnoreCase);
                if (!m.Success)
                {
                    throw new Exception("必需是XXX + [1-9]{1位} +数字{0到多位} 这样的形式");
                }
    View Code

    44.数据库一只读操作


    ALTER DATABASE FDG_Sub SET READ_ONLY WITH NO_WAIT  --如果执行不了先将数据库设置成离线模式

    ALTER DATABASE FDG_Sub SET READ_WRITE WITH NO_WAIT

    --修改数据库状态为正常状态

    RESTORE DATABASE FDG_Sub WITH RECOVERY;
    Go

    --离线数据库
    ALTER DATABASE FDG_Sub
    SET OFFLINE WITH ROLLBACK IMMEDIATE

    --连接数据库

    ALTER DATABASE FDG_Sub
    SET ONLINE

    45.数据库还原Log并设置成备用\只读模式

    ALTER DATABASE [FDG_Test] SET OFFLINE WITH ROLLBACK IMMEDIATE --离线

    ALTER database [FDG_Test] set online --马上上线

    RESTORE LOG [FDG_Test] FROM DISK = N'D:\Log4'      --还原
    WITH STANDBY = N'D:\ROLLBACK_UNDO_FDG.BAK',
    NOUNLOAD, STATS = 10

    ALTER database [FDG_Test] set online  --在上线一次, 操作可多次执行,有幂等性

    ALTER DATABASE [FDG_Test] SET SINGLE_USER
    ALTER DATABASE [FDG_Test] SET MUlti_USER

    46.devexpress 数字格式化 输出

    Numeric "{0:n2}"

    Numeric "{0:c4}" --货币
  • 相关阅读:
    MySQL运维案例分析:Binlog中的时间戳
    身边有位“别人家的程序员”是什么样的体验?
    苹果收取30%过路费_你是顶是踩?
    1019 数字黑洞 (20 分)C语言
    1015 德才论 (25 分)C语言
    1017 A除以B (20 分)C语言
    1014 福尔摩斯的约会 (20 分)
    求n以内最大的k个素数以及它们的和、数组元素循环右移问题、求最大值及其下标、将数组中的数逆序存放、矩阵运算
    1005 继续(3n+1)猜想 (25 分)
    爬动的蠕虫、二进制的前导的零、求组合数、Have Fun with Numbers、近似求PI
  • 原文地址:https://www.cnblogs.com/wdfrog/p/1388253.html
Copyright © 2020-2023  润新知