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

本文汇总了一系列SQL与JavaScript编程中的实用技巧,包括批量导入数据、字段类型修改、自增字段设置、图片尺寸获取、XML节点操作及正则表达式的应用等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

None.gif--批量导入数据脚本:
None.gif
INSERT INTO tb_Table (id, name)
None.gif
SELECT     77583 , name1 FROM         tb_table2 WHERE (intTID = 41444)

 

None.gif123456 MD5加密后的代码“E10ADC3949BA59ABBE56E057F20F883E”

 

None.gif修改字段名花费的执行时间很小。修改字段类型可以使用下面的方式。
None.gif--将原有的intID字段改成int型
None.gifALTER TABLE [tb_Table1] ALTER COLUMN intID int NULL

 

数据库的自增字段,标识增量是步长,标识种子是起始的数字。可以设置从100000开始,每条数据增加1。100000,100002,100003。。

 

None.gif
None.gif
<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> 都没问题。

 

None.gif<!--获取页面图片的宽度和高度,如果你设定了IMG的width和height属性,获取得到的就是你设定的值-->
None.gif
<img src="1.gif" id="1" />
ExpandedBlockStart.gifContractedBlock.gif
<script language="javascript" type="text/javascript">dot.gif
InBlock.gif 
var x=document.getElementById(1).clientWidth;
InBlock.gif 
var y=document.getElementById(1).clientHeight;
ExpandedBlockEnd.gif document.write(
"图片的宽度为:"+x+"图片高度为:"+y);
None.gif
</script>

 

None.gif不要在使用callback的时候使用页面的reload方法或者转向

 

客户端CLICK和服务器端点击的解决方式
None.gifonclick="if(CreateNewClub()==false) return;" onserverclick="btnCreateNewClub_ServerClick"

 

ExpandedBlockStart.gifContractedBlock.gif/**//// <summary>
InBlock.gif        
/// 插入一个节点和此节点的多个子节点。
InBlock.gif        
/// </summary>
InBlock.gif        
/// <param name="MainNode"></param>
InBlock.gif        
/// <param name="ChildNode"></param>
ExpandedBlockEnd.gif        
/// <param name="ht">用哈希表存储多个子节点的键值对</param>

None.gif        public void InsertNode(string MainNode, string ChildNode, Hashtable ht)
ExpandedBlockStart.gifContractedBlock.gif        
dot.gif{
InBlock.gif            XmlNode objRootNode 
= objXmlDoc.SelectSingleNode(MainNode);
InBlock.gif            XmlElement objChildNode 
= objXmlDoc.CreateElement(ChildNode);
InBlock.gif            objRootNode.AppendChild(objChildNode);
InBlock.gif            
foreach (DictionaryEntry de in ht)
ExpandedSubBlockStart.gifContractedSubBlock.gif            
dot.gif{
InBlock.gif                XmlElement objElement 
= objXmlDoc.CreateElement(de.Key.ToString());
InBlock.gif                objElement.InnerText 
= de.Value.ToString();
InBlock.gif                objChildNode.AppendChild(objElement);
ExpandedSubBlockEnd.gif            }

ExpandedBlockEnd.gif        }

 

None.gifXmlNode和XmlElement的继承关系     
None.gif  System.Object  
None.gif        System.Xml.XmlNode  
None.gif              System.Xml.XmlLinkedNode  
None.gif                    System.Xml.XmlElement
None.gif元素是XML的基本构造模块。通常,元素拥有子元素、文本节点,或两者的组合。元素节点也是能够拥有属性的唯一节点类型。比如  
None.gif  
<name>123</name>  
None.gif  name元素包含文本节点123

 

None.gif//System.ArgumentException:
None.gif
//     newChild 是从不同于创建此节点的文档创建的。该节点是只读的。
None.gif
        public virtual XmlNode AppendChild(XmlNode newChild);
None.gif
None.gif注意这个错误,”不同的文档创建的“

 

None.gifSystem.IO.StreamWriter sw = new System.IO.StreamWriter(@"d:\aa.txt");
None.gif            Console.SetOut(sw);
None.gif            Console.WriteLine(
"kajsdklfjasdf");
None.gif            sw.Close(); 

 

None.gif//在后台代码里面写前台提示脚本的方式 asp.net ajax beta2
None.gif
<asp:UpdatePanel runat="server" ID="p1">
None.gif
*.cs:
None.gifMicrosoft.Web.UI.ScriptManager.RegisterStartupScript(p1, 
this.GetType(), "click""alert('ok')"true);

 

None.gif.Net Coding时,请注意:
None.gif
None.gif滥用XML了么?这是个时髦但昂贵、缓慢的东东 
None.gif只在确定能处理的地方Exception 
None.gif
string + 比 StringBuilding  慢300倍 
None.gifInbox 
/Unbox ,慢 
None.gifReflexction。慢 
None.gifCOM invoke,慢

 

None.gif//checkbox在datagrid里如何实现批量删除
None.gif
None.gif
//首先,在datagrid控件绑定的时候,必须指定它的主键值
None.gif
this.datagrid1.DataKeyField = "id";
None.gif
None.gif
private void DelButton_Click(object sender, System.EventArgs e)
ExpandedBlockStart.gifContractedBlock.gif
dot.gif{
InBlock.gif   
for(int i=0;i<this.datagrid1.Items.Count;i++)
ExpandedSubBlockStart.gifContractedSubBlock.gif   
dot.gif{
InBlock.gif     CheckBox mychk 
= (CheckBox)this.datagrid1.Items[i].FindControl(xxxid);
InBlock.gif     
if(mychk.Checked == true)
ExpandedSubBlockStart.gifContractedSubBlock.gif     
dot.gif{
InBlock.gif         
int myid = Convert.ToInt32(this.datagrid1.DataKeys[i].ToString());
InBlock.gif         sql 
= delete table where id = + myid;
InBlock.gif         
//执行删除
ExpandedSubBlockEnd.gif
     }

ExpandedSubBlockEnd.gif   }

ExpandedBlockEnd.gif}

 

None.gifusing System.Net;
None.gif
//将具有指定 URI 的资源下载到本地文件
None.gif
WebClient wc = new WebClient();
None.gifwc.DownloadFile(uri,filename);

 

None.gifJS里正则匹配忽略大小写的一个小例子(. net的正则验证控件里面似乎不能这样写), java中用(?i)sss
None.gif
var url = /sss/i  ;
None.gif
var text = "Sss";
None.gif
var result = text.match(url);
ExpandedBlockStart.gifContractedBlock.gif
if (result != nulldot.gif{
InBlock.gif    alert(
"matched!"); 
ExpandedBlockEnd.gif}

 

None.gif得到程序运行时间的函数
None.gif
using System.Diagnostics;
None.gif
//开始计时
None.gif
Stopwatch watch = new Stopwatch();            
    watch.Start();                        
None.gif....
None.gif
//停止计时
None.gif
watch.Stop();
None.gifResponse.Write(watch.Elapsed);

 

None.gif在mysql数据库执行sql语句时使用正则表达式
None.gif下面的sql语句使用正则表达式匹配手机号:
None.gif
select  ('13800138000' REGEXP '^13[0-9]{9,9}$|159[0-9]{8,8}$')
None.gif若匹配上查询结果为1否为0。 

 

None.gifselect 当前日期=convert(varchar(10),getdate(),120)
None.gif,当前时间
=convert(varchar(8),getdate(),114)
None.gif
None.gif本周开始时间: 
cast(CONVERT(varchar(10),(getdate() - DATEPART(weekday,getdate())+1),120as datetime)

 

None.gif页面加载和关闭的触发的事件:
None.gif1 写在body标签里面
None.gif
<body onunload="alert('xxxxxxxxxxxxxxxxx')" onload="">
None.gif2  JS里
ExpandedBlockStart.gifContractedBlock.gif
<script>dot.gif
ExpandedSubBlockStart.gifContractedSubBlock.gifwindow.onunload
=alert("xxxxxxx");/**//*关闭*/
ExpandedSubBlockStart.gifContractedSubBlock.gifwindow.onload
=alert("xxxxxxx");/**//*加载*/
ExpandedBlockEnd.gifwindow.onbeforeunload
=alert("xxxxxxx");//
None.gif
</script>
None.gifonbeforeunload可以在页面关闭,刷新,跳转时弹出提示信息,防止意外的跳转使得当前页的表单内容被清空。如果用onuload的话会使页面关闭之后才执行事件。
None.gif
None.gif3.asp.net代码
None.gifprotected   override   void   OnUnload(EventArgs   e)  
None.gif{
None.gif   Session.RemoveAll(); //删除Session
None.gif   base.OnUnload (e);  
None.gif}   

 

问题描述:取上传的文件名以及扩展名
//错误代码,图片文件名中有.的情况没有考虑,如: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;

 

None.gif发现某网站在Firefox 下面进不了首页,原来,他们使用 window.navigate("URL") 而不是 location.href='URL' 来做跳转;不幸的是 Firefox 并不支持 navigate 方法。所以以后任何地方要做跳转,忘了 navigate 吧!

 

None.gif解决了一个小问题,还是正则
None.gifhttp://xiaoqian.cn/([(\u4e00-\u9fa5)0-9a-zA-Z]+)(\/|.{0})$
None.gif([(\u4e00-\u9fa5)0-9a-zA-Z]+)匹配汉字,字母和数字
None.gif(\/|.{0})表示有个/或者空(什么都没有)
None.gif
None.gif空不就是0个字符,嘿嘿
None.gif发现写正则是需要灵感的           

   把|.{0}换成?更好
   ?表示 重复零次或一次 (thx lee)   
None.gif
None.gif2006-10-24 11:05:09

 

None.gif养成在代码中写:
None.gif#region 解释
None.gif   //一个功能实现片段
None.gif#end region
None.gif的习惯,这样,一个文件中的代码看起来舒服多了
None.gif:)

 

None.gif怎么把1/2  转化成 50% 
None.gif 方案:(0.5*100).tostring+"%"
None.gif 代码:
None.gif      string a = "1/2";
None.gif      string[] b = a.Split('/');
None.gif      double i = (double)(Convert.ToDouble(b[0]) / Convert.ToDouble(b[1])) * 100; 
None.gif上面是自定义的,据说.NET框架中有个函数能做,FormatPercent,没有检验

 

None.gifi.ToString("#0.00"); 
None.gif比如i=50
None.gif结果就是 50.00 
None.gifi=12.3456
None.gif结果就是 12.35 
None.gif四舍五入

 

None.gif在自定义控件上面添加页面输出缓存
ExpandedBlockStart.gifContractedBlock.gif
<%dot.gif@ OutputCache Duration="120000" VaryByParam="*" %>
None.gif注意:"*"

 

如何获取编辑行的主键值?
DataList_links_ItemDataBound()中
  del.CommandArgument = item.id.ToString();
DataList_links_ItemCommand事件中
 int id = Convert.ToInt32(e.CommandArgument); 

 

None.gifsqlserver中的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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值