• 开发中的零敲碎打,编程技巧,BUG收集


    --批量导入数据脚本:
    INSERT INTO tb_Table (id, name)
    SELECT     77583 , name1 FROM         tb_table2 WHERE (intTID = 41444)
    123456 MD5加密后的代码“E10ADC3949BA59ABBE56E057F20F883E”
    修改字段名花费的执行时间很小。修改字段类型可以使用下面的方式。
    --将原有的intID字段改成int型
    ALTER TABLE [tb_Table1] ALTER COLUMN intID int NULL
    数据库的自增字段,标识增量是步长,标识种子是起始的数字。可以设置从100000开始,每条数据增加1。100000,100002,100003。。

    <href="javascript:void(0);" onclick="open();">链接</a> 如果open()里面有location.href = "http://xxx.com"; 则无法转向。 ——IE6下面location.href 的BUG。<href="#" onclick="open();">链接2</a><href="javascript:open();">链接3</a> 都没问题。
    <!--获取页面图片的宽度和高度,如果你设定了IMG的width和height属性,获取得到的就是你设定的值-->
    <img src="1.gif" id="1" />
    <script language="javascript" type="text/javascript">
     
    var x=document.getElementById(1).clientWidth;
     
    var y=document.getElementById(1).clientHeight;
     document.write(
    "图片的宽度为:"+x+"图片高度为:"+y);
    </script>
    不要在使用callback的时候使用页面的reload方法或者转向
    客户端CLICK和服务器端点击的解决方式
    onclick="if(CreateNewClub()==false) return;" onserverclick="btnCreateNewClub_ServerClick"
    /// <summary>
            
    /// 插入一个节点和此节点的多个子节点。
            
    /// </summary>
            
    /// <param name="MainNode"></param>
            
    /// <param name="ChildNode"></param>
            
    /// <param name="ht">用哈希表存储多个子节点的键值对</param>

            public void InsertNode(string MainNode, string ChildNode, Hashtable ht)
            
    {
                XmlNode objRootNode 
    = objXmlDoc.SelectSingleNode(MainNode);
                XmlElement objChildNode 
    = objXmlDoc.CreateElement(ChildNode);
                objRootNode.AppendChild(objChildNode);
                
    foreach (DictionaryEntry de in ht)
                
    {
                    XmlElement objElement 
    = objXmlDoc.CreateElement(de.Key.ToString());
                    objElement.InnerText 
    = de.Value.ToString();
                    objChildNode.AppendChild(objElement);
                }

            }
    XmlNode和XmlElement的继承关系     
      System.Object  
            System.Xml.XmlNode  
                  System.Xml.XmlLinkedNode  
                        System.Xml.XmlElement
    元素是XML的基本构造模块。通常,元素拥有子元素、文本节点,或两者的组合。元素节点也是能够拥有属性的唯一节点类型。比如  
      
    <name>123</name>  
      name元素包含文本节点123
    //System.ArgumentException:
    //     newChild 是从不同于创建此节点的文档创建的。该节点是只读的。
            public virtual XmlNode AppendChild(XmlNode newChild);

    注意这个错误,”不同的文档创建的“
    System.IO.StreamWriter sw = new System.IO.StreamWriter(@"d:\aa.txt");
                Console.SetOut(sw);
                Console.WriteLine(
    "kajsdklfjasdf");
                sw.Close(); 
    //在后台代码里面写前台提示脚本的方式 asp.net ajax beta2
    <asp:UpdatePanel runat="server" ID="p1">
    *.cs:
    Microsoft.Web.UI.ScriptManager.RegisterStartupScript(p1, 
    this.GetType(), "click""alert('ok')"true);
    .Net Coding时,请注意:

    滥用XML了么?这是个时髦但昂贵、缓慢的东东 
    只在确定能处理的地方Exception 
    string + 比 StringBuilding  慢300倍 
    Inbox 
    /Unbox ,慢 
    Reflexction。慢 
    COM invoke,慢
    //checkbox在datagrid里如何实现批量删除

    //首先,在datagrid控件绑定的时候,必须指定它的主键值
    this.datagrid1.DataKeyField = "id";

    private void DelButton_Click(object sender, System.EventArgs e)
    {
       
    for(int i=0;i<this.datagrid1.Items.Count;i++)
       
    {
         CheckBox mychk 
    = (CheckBox)this.datagrid1.Items[i].FindControl(xxxid);
         
    if(mychk.Checked == true)
         
    {
             
    int myid = Convert.ToInt32(this.datagrid1.DataKeys[i].ToString());
             sql 
    = delete table where id = + myid;
             
    //执行删除
         }

       }

    }
    using System.Net;
    //将具有指定 URI 的资源下载到本地文件
    WebClient wc = new WebClient();
    wc.DownloadFile(uri,filename);
    JS里正则匹配忽略大小写的一个小例子(. net的正则验证控件里面似乎不能这样写), java中用(?i)sss
    var url = /sss/i  ;
    var text = "Sss";
    var result = text.match(url);
    if (result != null{
        alert(
    "matched!"); 
    }
    得到程序运行时间的函数
    using System.Diagnostics;
    //开始计时
    Stopwatch watch = new Stopwatch();            
        watch.Start();                        
    ....
    //停止计时
    watch.Stop();
    Response.Write(watch.Elapsed);
    在mysql数据库执行sql语句时使用正则表达式
    下面的sql语句使用正则表达式匹配手机号:
    select  ('13800138000' REGEXP '^13[0-9]{9,9}$|159[0-9]{8,8}$')
    若匹配上查询结果为1否为0。 
    select 当前日期=convert(varchar(10),getdate(),120)
    ,当前时间
    =convert(varchar(8),getdate(),114)

    本周开始时间: 
    cast(CONVERT(varchar(10),(getdate() - DATEPART(weekday,getdate())+1),120as datetime)
    页面加载和关闭的触发的事件:
    1 写在body标签里面
    <body onunload="alert('xxxxxxxxxxxxxxxxx')" onload="">
    2  JS里
    <script>
    window.onunload
    =alert("xxxxxxx");/*关闭*/
    window.onload
    =alert("xxxxxxx");/*加载*/
    window.onbeforeunload
    =alert("xxxxxxx");//
    </script>
    onbeforeunload可以在页面关闭,刷新,跳转时弹出提示信息,防止意外的跳转使得当前页的表单内容被清空。如果用onuload的话会使页面关闭之后才执行事件。

    3.asp.net代码
    protected   override   void   OnUnload(EventArgs   e)  
    {
       Session.RemoveAll(); //删除Session
       base.OnUnload (e);  
    }   
    问题描述:取上传的文件名以及扩展名
    //错误代码,图片文件名中有.的情况没有考虑,如:a.b.gif 
    extFile = fileName.Substring(fileName.IndexOf("."));
    //正确代码         
    Match match = Regex.Match(fileName, @"^.*(?
    <ex>\.(png|gif|jpeg|jpg])$");
    extFile = DateTime.Now.ToFileTime() + match.Groups["ex"].Value;
    发现某网站在Firefox 下面进不了首页,原来,他们使用 window.navigate("URL") 而不是 location.href='URL' 来做跳转;不幸的是 Firefox 并不支持 navigate 方法。所以以后任何地方要做跳转,忘了 navigate 吧!
    解决了一个小问题,还是正则
    http://xiaoqian.cn/([(\u4e00-\u9fa5)0-9a-zA-Z]+)(\/|.{0})$
    ([(\u4e00-\u9fa5)0-9a-zA-Z]+)匹配汉字,字母和数字
    (\/|.{0})表示有个/或者空(什么都没有)

    空不就是0个字符,嘿嘿
    发现写正则是需要灵感的           

       把|.{0}换成?更好
       ?表示 重复零次或一次 (thx lee)   

    2006-10-24 11:05:09
    养成在代码中写:
    #region 解释
       //一个功能实现片段
    #end region
    的习惯,这样,一个文件中的代码看起来舒服多了
    :)
    怎么把1/2  转化成 50% 
     方案:(0.5*100).tostring+"%"
     代码:
          string a = "1/2";
          string[] b = a.Split('/');
          double i = (double)(Convert.ToDouble(b[0]) / Convert.ToDouble(b[1])) * 100; 
    上面是自定义的,据说.NET框架中有个函数能做,FormatPercent,没有检验
    i.ToString("#0.00"); 
    比如i=50
    结果就是 50.00 
    i=12.3456
    结果就是 12.35 
    四舍五入
    在自定义控件上面添加页面输出缓存
    <%@ OutputCache Duration="120000" VaryByParam="*" %>
    注意:"*"
    如何获取编辑行的主键值?
    DataList_links_ItemDataBound()中
      del.CommandArgument = item.id.ToString();
    DataList_links_ItemCommand事件中
     int id = Convert.ToInt32(e.CommandArgument); 
    sqlserver中的decimal类型可以选择精度和小数位数来控制一个小数,float不行
    mysql中可以这样分页取数据
    select * from tb limit 0,30
    貌似SQLServer2005可以使用ROW_NUMBER()结合order by来实现分页,一段sql例子:
    select threadid from 
    (
    select threadid, ROW_NUMBER() OVER (order by stickydate) as Pos from cs_threads
    ) as T 
    where T.Pos > 100000 and T.Pos 
    < 100030
  • 相关阅读:
    【梦话区】一直迷茫的net小伙
    【ASP.NET】登陆成功后如何跳转到上一个页面
    【C#】强类型DataSet实现登录次数限制
    【ASP.NET】ItemDataBound之repeater 和 listview
    【网页设计】框架的高度随框架里面的内容的多少而改变——转
    【连载】Scala程序设计:Java虚拟机多核编程实战——简介
    博客园图灵杯第五届博问大赛(2010.8.3~2010.9.2)
    【连载】高效人士的116个IT秘诀(第2版)——秘诀23早晨就来一次突破
    图灵2010.08书讯
    图灵五周年生日聚会圆满成功,多家媒体对此进行报道
  • 原文地址:https://www.cnblogs.com/lbk/p/505220.html
Copyright © 2020-2023  润新知