圣地

知识的成长历程带给你无限的快乐。

需要获取一些HTML的对象的坐标来更灵活的设置目标层的坐标,这里可以通过用到document.body.scrollTop等属性,但是这些属性在xhtml的标准网页中或更简单的说就是带<!DOCTYPE...>的标签中得到的值是0;如果不要此标签则一切正常,那么在xhtml中如何获取body的坐标呢?当然有办法了,我们使用document.documentElement来取代document.body例如可以这样写:

var top=document.documentElement.scrollTop || document.body.scroolTop;

js中的||是个好东西,不但可以用在if的条件语句中,而且还可以用在变量的赋值上,上例可以写成如下格式:

var top=document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop; 这样写可以有很好的兼容性。

还要注意的一点是:如果不声明document.documentElement.scrollTop的值反而会显示0。

说明要想获取当前页面上滚动条坐标的纵坐标位置:用

document.documentElement.scrollTop而不是用

document.body.scrollTop;

document.documentElement获取的是html标签,

document.body获取的是body标签;

在标准w3c下,document.body.scrollTop恒为0,需要用document.documentElement.scrollTop 来代替;

如果我们要定位鼠标相对于页面的绝度位置时,会在搜索引擎中得到的大多会让你用

event.clientX+document.body.scrollLeft , event.clientY+document.body.scrollTop;

如果发现鼠标偏离了你的

在WEB.CONFIG文件中加密数据库联接字符串

web.config中加密连接字符串    

旧版本的ASP.NET将连接字符串直接保存在ASPX页面中。回想一下,连接字符串包含了数据服务器名称和用户账户等信息,有时候甚至还包含了密码。在代码中包含以上信息是非常不好的习惯,原因有二。首先,这些信息可以被设计小组中的每一位程序人员看到(但是站点访问者不能在浏览器上看到)。第二,在整个Web站点中的每一个拥有该连接的地方,都必须进行维护和更新。更新密码成为了一项繁重的工作。

ASP.NET 2.0提供了一个选项可以将连接字符串移动至Web.config文件的连接区域,给字符串一个名称并将其加密。然后ASP.NET 2.0页面就通过这个名称来引用连接字符串。保存连接字符串至Web.config的步骤并不复杂。打开位于站点根目录下的Web.config文件。找到被<connectionString>界定的区域(如果不存在,可自行添加)并在<Add>标记中输入如下代码。该标记有三个属性:name、connectionString和providerName。属性name就是将会在页面中使用的连接字符串的普通名称。connectionString属性应当设置为连接至数据库的完整的连接字符串,如前所述。

e.g.

<?xml version="1.0"?>

<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">

string strhtml = "";

                            Regex reg = new Regex("<a href=\"http://(?<url>\\S+).cncn.com/jingdian/\">(?<city>[^景点<]+)</a>");

                            reg.IsMatch();

                            MatchCollection mc = reg.Matches(strhtml);

                            foreach (Match m in mc)

       &

C#特别适合于构造蜘蛛程序,这是因为它已经内置了HTTP访问和多线程的能力,而这两种能力对于蜘蛛程序来说都是非常关键的。下面是构造一个蜘蛛程序要解决的关键问题:

     ⑴ HTML分析:需要某种HTML解析器来分析蜘蛛程序遇到的每一个页面。

     ⑵ 页面处理:需要处理每一个下载得到的页面。下载得到的内容可能要保存到磁盘,或者进一步分析处理。

     ⑶ 多线程:只有拥有多线程能力,蜘蛛程序才能真正做到高效。

     ⑷ 确定何时完成:不要小看这个问题,确定任务是否已经完成并不简单,尤其是在多线程环境下。

     一、HTML解析

本文提供的HTML解析器由ParseHTML类实现,使用非常方便:首先创建该类的一个实例,然后将它的Source属性设置为要解析的HTML文档:

   ParseHTML parse = new ParseHTML();

   parse.Source = "<p>Hello World</p>";

接下来就可以利用循环来检查HTML文档包含的所有文本和标记。通常,检查过程可以从一个测试Eof方法的while循环开始:

   while(!parse.Eof())

   {

   char ch = parse.Parse();

     Parse方法将返回HTML文档包含的字符--

这几天为了给客户演示我们的项目,发现原来程度在开发环境和部署环境中还不太一样,原本在开发环境中程度运行的好好的,而部署后装在服务器则可能产生不少的错误。因此记录下所遇到的问题,方便以后查询同时也希望能帮遇到相关问题的朋友尽快解决问题或者避免这类的问题出现,经过google,baidu后得出一些相关的结论: 一、 如果你的程度用到水晶报表,那就需要为服务器部署所需要的环境或程序集,否则部署后程序会出现以下错误: Configuration Error

Description: An error occurred during the processing of a configuration file required to service this request. Please review the specific error details below and modify your configuration file appropriately.

Parser Error Message: Could not load file or assembly 'CrystalDecisions.Web, Version=10.2.3600.0, Culture=neutral, PublicKeyToken=692fbea5521e1304' or one of its dependencies. 系统找不到指定的文件。

Source Error:

Line 85: </pages>

Line 86: <httpHandlers>

Line 87: <add verb="GET" path="CrystalImageHandler.aspx" type="CrystalDecisions.Web.CrystalImageHandler, CrystalDecisions.Web, Version=10.2.3600.0, Culture=neutral, PublicKeyToken=692fbea5521e1304"/>

Line 88: &l

正统的cookie分发是通过扩展HTTP协议来实现的,服务器通过在HTTP的响应头中加上一行特殊的指示以提示浏览器按照指示生成相应的cookie。然而纯粹的客户端脚本如JavaScript或者VBScript也可以生成cookie。

cookie的内容主要包括:名字,值,过期时间,路径和域。

其中域可以指定某一个域比如.google.com,相当于总店招牌,比如宝洁公司,也可以指定一个域下的具体某台机器比如www.google.com或者froogle.google.com,可以用飘柔来做比。

路径就是跟在域名后面的URL路径,比如/或者/foo等等,可以用某飘柔专柜做比。

路径与域合在一起就构成了cookie的作用范围。

如果不设置过期时间,则表示这个cookie的生命期为浏览器会话期间,只要关闭浏览器窗口,cookie就消失了。这种生命期为浏览器会话期的 cookie被称为会话cookie。会话cookie一般不存储在硬盘上而是保存在内存里,当然这种行为并不是规范规定的。如果设置了过期时间,浏览器就会把cookie保存到硬盘上,关闭后再次打开浏览器,这些cookie仍然有效直到超过设定的过期时间。

存储在硬盘上的cookie 可以在不同的浏览器进程间共享,比如两个IE窗口。而对于保存在内存里的cookie,不同的浏览器有不同的处理方式。对于IE,在一个打开的窗口上按 Ctrl-N(或者从文件菜单)打开的窗口可以

   DateTime aa=Convert.ToDateTime(str1);

DateTime bb=Convert.ToDateTime(str2);

if(aa>bb)

{

Response.Write("我顶你个肺!aa>bb");

}  

----------------------------------------------------------------------------------------------------------

Label1.Text = read1["jieshusj"].ToString();

Label2.Text = DateTime.Now.ToString();

DateTime aa = Convert.ToDateTime(Label1.Text);

DateTime bb = Convert.ToDateTime(Label2.Text);

   if(bb>aa)

   {

              jj.Text = "谁大于谁";

    }

<%@ Page Language="VB" Debug="true" ContentType="text/html" ResponseEncoding="gb2312" %>

<%@ import namespace="system.data.oledb"%>

<%@ import namespace="system.data"%>

<script language="vb" runat="server">

sub page_load()

dim dbconn as oledbconnection

dim dbconn2 as oledbconnection

dbconn=new oledbconnection("provider=thcj;server=localhost;initial catalog=thc;user id=sa;password=980123;")

DBConn2 = New OleDbConnection("PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE="&Server.MapPath("C9OnlineCampus.mdb;"))

end sub

</script>

假设表game有一字段为gameYuiJian为bit字段(SQL SERVER 20005)和“是/否”字段(ACCSS数据库),在编写脚本文件时,如下才能正确执行

SQL strCmd = "Select Top 14 * From game Where gameTuiJian = 1 Order By Id Desc";

OleDb strCmd = "Select Top 14 * From game Where gameTuiJian = true Order By Id Desc";

在时间的处理:

sql server 语句"Select * From tt1 Where time1>'2009-12-01‘ “

Access 语句" Select * From tt1 Where time1>#2009-12-01#"也可以用上面语句

Sql Server 语句"Select * From tt1 Where DateDiff(day,time1,getdate())

Access语句"Select * From tt1 Where DateDiff('d',time1,now)

Access与SQL SERVER数据库转换

由于SQL2000里面没有"自动编号",所以你的以"自动编号"设置的字段都会变成非空的字段,这就必须手工修改这些字段,并把他的"标示"选择"是",种子为"1",增量为"1",

2,另外,ACCESS2000转换成SQL2000后,原来属性为"是/否"的字段将被转换成非空的"bit",这时候你必须修改成自己想要的属性了;

ACCESS转SQL SERVER中的一些经验

1.ACCESS的数据库中的自动编号类型在转化时,sql