博文

如何节约程序开发中的时间(2007-10-30 09:26:00)

摘要:在程序开发的过程,有人需要很少的时间,有人需要很长的时间,结果效率不一样。我曾经在本站上发过一个贴子问一下大家。感谢liulei001给我的回复和建议,我现在把建议放在这里与大家共享
1、重复的代码绝对不要写两次。(这一点很重要,是培养良好习惯的关键)
2、重复的功能提取成通用函数或过程。能减少很多重复工作,也便于维护。
3、程序设计时要考虑通用性,提高程序的利用率。
4、程序设计要简洁,清晰的面向过程远优于混乱的面向对象。
5、程序设计时要留下扩展空间,因为用户的需求永远都在变化。
6、一定要写程序的备注说明,写开发文档,尤其是多人合作项目的时候。不要过于相信自己的记忆力。
......

阅读全文(2442) | 评论:1

sql存储过程----删除表中的所有记录(2007-10-27 10:43:00)

摘要:利用存储过程来删除表中的所有记录
1、数据库和字段,conn.asp见
http://www.programfan.com/blog/article.asp?id=30476 2、存储过程代码
CREATE PROCEDURE dbo.delUserAll
    as
    set nocount on
    begin
       delete from dbo.[user]
    end
GO 3、del.asp
<!--#include file="conn.asp"-->
<%
    DIM MyComm
    Set MyComm = Server.CreateObject("ADODB.Command")
    MyComm.ActiveConnection = conn          'conn是数据库连接字串
    MyComm.CommandText      = "delUserAll"      '指定存储过程名
    MyComm.CommandType      = 4                 '表明这是一个存储过程
    MyComm.Prepared       &n......

阅读全文(6297) | 评论:0

sql存储过程----显示表中的记录(2007-10-26 07:22:00)

摘要:利用存储过程显示出表中的记录,如新闻罗列
1、数据库和字段见
http://www.programfan.com/blog/article.asp?id=30476 2、存储过程代码
 CREATE PROCEDURE dbo.getUserList
    as
    set nocount on
    begin
       select top 10 * from dbo.[user]
    end
GO 3、conn.asp
<%
Set conn = Server.CreateObject("ADODB.Connection")
DSNtemp="DRIVER={SQL Server};SERVER=(local);UID=user;PWD=123456;DATABASE=user"
conn.open DSNtemp
%> 4、显示记录list.asp
<!--#include file="conn.asp"-->
<%
    '**通过Command对象调用存储过程**
    DIM MyComm
    Set MyComm = Server.CreateObject("ADODB.Command")
    MyComm.ActiveConnection = conn          'conn是数据库连接字串
    MyComm.CommandText      = "getUserList"     '指定存储过程名
   ......

阅读全文(3248) | 评论:0

获取层中的内容,包括外层(2007-10-25 12:32:00)

摘要:获取层中的内容,包括外层。
<div id="aaa">
<div id="1"><div>sdfsdf</div></div><div id="2">12343</div>
</div> <!--
我想得到的是:
<div id="1"><div>sdfsdf</div>
<div id="2">12343</div>
--> <script>
s1=document.getElementById("aaa").firstChild.outerHTML;
s2=document.getElementById("aaa").lastChild.outerHTML;
alert(s1);
alert(s2);
</script>......

阅读全文(3013) | 评论:0

sql存储过程------用户登录系统(2007-10-25 10:29:00)

摘要:在事例前,先感谢 超然耗儿 提的这个建议
1、打开sql企业管理器,在里面建立数据库userinfo,完成后再在这个数据库中建立表user,再建立字段username、password,字段类型(varchar),最后给这个数据库加个用户user,设置好密码。向表中输入两条记录或更多,用来测试 2、打开userinfo  ------- 存储过程------右击-----新建存储过程(getUserlogin)-----删除文本框中的内容,贴粘上以下代码:
 CREATE PROCEDURE dbo.getUserlogin
       @UserName varchar(40),
       @UserPass varchar(40) output
    as
    set nocount on
    begin
       if @UserName is null return
       select @UserPass=password
           from dbo.[user]
           where username=@UserName
       return
    end
GO
3、conn.asp
<%
dim conn,connstr
set conn = server.createobject("adodb.connection")
connstr="......

阅读全文(6662) | 评论:3

防sql注入代码(2007-10-17 11:16:00)

摘要:safe.asp,将此文件包含到每页的顶部,下面就正常使用request,或request.querystring来获取传过来的值了,不需要检测了,因为已经检测过了。
<%
Sql_in="and |or |on |in |select |insert |update |delete |exec |declare |'"
  '防止GET方法---------------------------------------------------------------------------------
  '区分出注入字符
  Sql=Split(Sql_in,"|")
  '如果GET过来的数据不为空
  If Request.QueryString<>"" Then
      '逐一取出提交过来的参数
     For Each Sql_Get In Request.QueryString
     For Sql_Data=0 To Ubound(Sql)
      '判断是否包含非法字符
      IF Instr(Lcase(Request.QueryString(Sql_Get)),Sql(Sql_Data))<>0 Then
       '如果有非法字符,弹出对话框提示,并自动返回上一页
       Response.Write("<script>alert('系统提示:请不要输入非法字符尝试注入↓,你的IP已记录!');history.go(-1);</script>")
    Response.End()
   End IF
 &......

阅读全文(4733) | 评论:0

更改网页中某一个层中的所有span的属性(2007-10-10 10:59:00)

摘要:<span id="k">qqq</span>
<div id="aaaa">
 <span style="display:none">1234</span>
 <span style="display:none">567</span>
 <span style="display:none">789</span>
</div>
<div id="abc">
 <span>eee</span>
</div>
<span id="l">www</span> <script>
str=document.getElementById("aaaa");
message_nodes=str.getElementsByTagName("span");
num=message_nodes.length;
for (i=0;i<num;i++ )
{
  message_nodes[i].style.display="block";
}
</script>......

阅读全文(4696) | 评论:0

层中层事件问题(2007-09-21 15:44:00)

摘要:今天遇到的问题是这样的:
 两个层,一个外层,一个内层,两个层都有onclick事件,点击外层,打开google页面,点击内层,打开baidu页面,我是这样做的
<div onclick="window.open('http://www.google.cn')" style="width:250px;background-color:yellow"> 
 <p>google.cn</p> 
 <div onclick="window.open('http://www.baidu.com')" style="width:200px;background-color:orange"> 
 <p>baidu.com</p> 
 </div> 
 <p>google.cn</p> 
</div>  
当点击外层的时候,打开google,这里正确的;当点击内层时,出现了即打开baidu,又打开了google,这个效果不是我要的。经过向高人请教,他告诉我一种叫“阻止JavaScript事件冒泡传递(cancelBubble 、stopPropagation)”可以解决这个问题,我在网上找了相关资料,终于解决了。代码如下:
<script type="text/javascript"> 
function doSomething (obj,evt) { 
 window.open(obj);
 var e=(evt)?evt:window.event; 
 if (window.event) { 
 e.cancelBubble=true; 
 } else { 
 e.stopPropagation(); 
 } 
}&n......

阅读全文(2679) | 评论:0

asp连接远程mssql数据库代码(2007-09-19 10:00:00)

摘要:当远程MSSQL数据库更改了端口号,所以连接的代码也要相应的改一下
<%
dim conn,connstr
set conn = server.createobject("adodb.connection")
connstr="Provider=sqloledb;Data Source=*.*.*.*,端口号;Network Library=DBMSSOCN;Initial Catalog=数据库名;User ID=用户名;Password=密码;"
conn.open connstr
%>......

阅读全文(4665) | 评论:0

fso检测文件、磁盘、文件夹是否存在代码(2007-09-15 22:43:00)

摘要:利用FSO检测文件、磁盘、文件夹是否存在
<%
dim fso
set fso=server.createobject("scripting.filesystemobject")
if fso.driveexists("d:") then
response.write"磁盘D是存在的"
else
response.write"磁盘D是不存在的"
end if if fso.folderexists(server.mappath("folder")) then
response.write"folder文件夹是存在的"
else
response.write"folder文件夹是不存在的"
end if if fso.fileexists(server.mappath("sss.ASP")) then
response.erite"sss.asp文件是存在的"
else
response.write"sss.asp文件是不存的"
end if set fso=nothing
%> ......

阅读全文(3999) | 评论:0