<>、使用Cookies文件进行网站访问量计数

<%@Page Debug="True"%> ‘用于调试程序时,设置断点

<html>

<head><title>应用Cookies文件的访问计数器</title></head>

<body>

<h2 align="center"><b>使用Cookies文件进行网站访问量计数</b></h2>

<asp:label id="message" runat="server"/>

</body>

</html>

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

sub Page_Load(sender 
as object,e as eventargs)

    dim vNumber 
as integer '定义一个保存访问次数的变量

       dim nickname 
as string

       nickname
="王庆坤"


       If Request.Cookies(
"vNumber") Is nothing then

           vNumber
=1 '如果第一次访问本站,访问次数为1

    
else

           vNumber
=Request.Cookies("vNumber").Value+1 '否则访问次数在原来的基础上加1

       end If

       Response.Cookies(
"vNumber").Value=vNumber '把访问次数写入Cookies文件

       Response.Cookies(
"vNumber").Expires=DateTime.Now.AddYears(1)

       message.Text
=nickname & ",您是第" & vNumber & "次访问本站,欢迎您!"

end sub

</script>

<>、使用Application内置对象进行网站访问量计数

说明:用于记录不同用户访问网站的次数

<html>

<head><title>使用Application对象对网站访问量进行计数</title></head>

<body>

<%

Application.Lock()

Application(
"UserCount")=Application("UserCount")+1

Application.UnLock()

Response.Write(Application(
"UserCount"))

%>

</body>

</html>

<>、使用文本文件保存网站访问量

说明:为避免服务器损坏或者突然停电等意外情况的发生,使用文件保存网站访问量

<html>

<head><title>使用StreamWriter和StreamReader对象进行网站计数</title></head>

<body>

<h2 align="center"><b>使用StreamWriter和StreamReader对象进行网站计数</b></h2>

<asp:label id="message" runat="server"/>

</body>

</html>

<%@Import Namespace="System.IO"%>

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

sub Page_Load(sender 
as object,e as eventargs)

    dim VisiterCount 
as Long '定义计数器变量

       dim myFile 
as string     '定义文件路径变量

       myFile
=Server.MapPath("Count.txt")

       dim sw 
as StreamWriter

       dim sr 
as StreamReader

       
'如果该文件不存在建立文件,并写入1

       If File.Exists(myFile)
=false then

          sw
=new StreamWriter(myFile,false,Encoding.Default)

       sw.WriteLine(
"1")   '写入1

          sw.Close()

          message.Text
="您是第1位访客。" 

       
else

       
'读取文件

          sr
=new StreamReader(myFile,Encoding.Default)

          VisiterCount
=CLng(sr.ReadLine()) '读取一行,并转换成长整形

          sr.Close()

          
'写入文件

          sw
=new StreamWriter(myFile,false,Encoding.Default)

          VisiterCount
=VisiterCount+1   '将总数增加1

          sw.WriteLine(VisiterCount.ToString()) 
'写入一行,并覆盖原有数据

          sw.Close()

          message.Text
="您是第" & VisiterCount & "位访客。"

       end If

end sub

</script>
 

 

posted @ 2010-11-13 16:39 zhangsir 阅读(225) 评论(0)  编辑

SQL技巧(sp_procedure_params_rowset,SQL中设置数据值为null)

1.在SQL Server数据库中要把某个字段改null? 语句:set xxxx=null; 快捷键:ctrl + 0;

2.得到任意一个存储过程的参数列表 方法1: select c.name from syscolumns c,sysobjects o where o.id=c.id and o.xtype='P' and o.name='your proc name' 方法2: exec sp_procedure_params_rowset @procedure_name = 'storeproc name' 例如: 1)、 select c.name,c.colorder from syscolumns c,sysobjects o where o.id=c.id and o.xtype='P' and o.name='proc_EMS_SearchEquipment' 得到 @type 1 @model 2 @location 3 @description 4 2)、sp_procedure_params_rowset @procedure_name='proc_EMS_SearchEquipment' DBName dbo proc_EMS_SearchEquipment;1 @RETURN_VALUE 0 4 0 NULL 0 3 NULL NULL 10 NULL NULL int int DBName dbo proc_EMS_SearchEquipment;1 @type 1 1 0 NULL 1 3 NULL NULL 10 NULL NULL int int DBName dbo proc_EMS_SearchEquipment;1 @model 2 1 0 NULL 1 129 50 50 NULL NULL NULL varchar varchar DBName dbo proc_EMS_SearchEquipment;1 @location 3 1 0 NULL 1 129 50 50 NULL NULL NULL varchar varchar DBName dbo proc_EMS_SearchEquipment;1 @description 4 1 0 NULL 1 129 100 100 NULL NULL NULL varchar varchar

3.怎样使用该函数 //执行存储过程 public DataSet ExecuteDataSet(string storedProcedure, params object[] param) { SqlCommand selectCommand = this.GenerateCommand(storedProcedure, param); selectCommand.CommandTimeout = 300; DataSet dataSet = null; SqlDataAdapter adapter = new SqlDataAdapter(selectCommand); try { dataSet = new DataSet(); adapter.Fill(dataSet); } catch (Exception exception) { throw exception; } finally { if (!this.UnderTran) { this.Connect.Close(); } } return dataSet; } //将传入的object[]值赋给对应存储过程参数 private SqlCommand GenerateCommand(string cmdstr, params object[] val) { SqlCommand command = new SqlCommand(cmdstr, this.Connect); command.CommandType = CommandType.StoredProcedure; if (!this.UnderTran && (this.Connect.State != ConnectionState.Open)) { this.Connect.Open(); } else { command.Transaction = this.Tran; } if ((val != null) && (val.Length > 0)) { SqlCommand selectCommand = new SqlCommand("sp_procedure_params_rowset", this.Connect); if (this.UnderTran) { selectCommand.Transaction = this.Tran; } selectCommand.CommandType = CommandType.StoredProcedure; selectCommand.Parameters.Add("@procedure_name", cmdstr); DataSet dataSet = new DataSet(); new SqlDataAdapter(selectCommand).Fill(dataSet); DataTable table = dataSet.Tables[0]; table.Rows.RemoveAt(0); for (int i = 0; i < val.Length; i++) { if (val[i] != null) { command.Parameters.Add(table.Rows[i]["PARAMETER_NAME"].ToString(), val[i]); } } } return command; } //调用函数 public DataTable SearchEquipment(int type,string model,string location,string description)//OSR.Entity.EMSData { object[] obj = new object[4]; obj[0] = type; obj[1] = model; obj[2] = location; obj[3] = description; return visitor.ExecuteDataSet("proc_EMS_SearchEquipment", obj).Tables[0]; }

posted @ 2009-11-11 18:01 zhangsir 阅读(245) 评论(0)  编辑
1)、打开我的 Microsoft Access ,打开任意一个文件,然后点“工具->选项”,再选常规选项卡。注意在右下方有"新建数据库排序次序"下拉框,默认为“中文笔画”,选中“常规”。然后关掉该文件。(注意,该选项卡只有在有文件打7 ]2 j% v* v& @; J( U
开的状况下才能使用)
2)、然后“文件 --> 新建...”创建一个空白数据库文件,然后“文件 -->获取外部数导入”,打开我们原来的数据库文件将所有的 tables 全部传到新文件来,然后保存新文件。如果你在新建数据库,或新建系统时遇到此类问题,大可新建 table,或用 SQL query 写入初始数据。
3)、保存此新文件,然后上传到服务器。.
4)、搞定!2
posted @ 2009-10-09 15:49 zhangsir 阅读(37) 评论(0)  编辑

关于页面传值的方法,引发了很多讨论。看来有很多人关注这个,我就我个人观点做了些总结,希望对大家有所帮助。

1.  使用QueryString变量

QueryString是一种非常简单的传值方式,他可以将传送的值显示在浏览器的地址栏中。如果是传递一个或多个安全性要求不高或是结构简单的数值时,可以使用这个方法。但是对于传递数组或对象的话,就不能用这个方法了。下面是一个例子:

a.aspx的C#代码

private void Button1_Click(object sender, System.EventArgs e)
{
    string s_url;
    s_url = "b.aspx?name=" + Label1.Text;
    Response.Redirect(s_url);
}

b.aspx中C#代码
private void Page_Load(object sender, EventArgs e)
{
    Label2.Text = Request.QueryString["name"];
}

2.  使用Application 对象变量

Application对象的作用范围是整个全局,也就是说对所有用户都有效。其常用的方法用Lock和UnLock。

a.aspx的C#代码

private void Button1_Click(object sender, System.EventArgs e)
{
    Application["name"] = Label1.Text;
    Server.Transfer("b.aspx");
}

b.aspx中C#代码

private void Page_Load(object sender, EventArgs e)
{
    string name;
    Application.Lock();
    name = Application["name"].ToString();
    Application.UnLock();
}

3.  使用Session变量

想必这个肯定是大家使用中最常见的用法了,其操作与Application类似,作用于用户个人,所以,过量的存储会导致服务器内存资源的耗尽。

a.aspx的C#代码

private void Button1_Click(object sender, System.EventArgs e)
{
    Session["name"] = Label.Text;
}

b.aspx中C#代码

private void Page_Load(object sender, EventArgs e)
{
    string name;
    name = Session["name"].ToString();
}

4.  使用Cookie对象变量

这个也是大家常使用的方法,与Session一样,其是什对每一个用户而言的,但是有个本质的区别,即Cookie是存放在客户端的,而session是存放在服务器端的。而且Cookie的使用要配合ASP.NET内置对象Request来使用。

a.aspx的C#代码

private void Button1_Click(object sender, System.EventArgs e)
{
    HttpCookie cookie_name = new HttpCookie("name");
    cookie_name.Value = Label1.Text;
    Reponse.AppendCookie(cookie_name);
    Server.Transfer("b.aspx");
}

b.aspx中C#代码

private void Page_Load(object sender, EventArgs e)
{
    string name;
    name = Request.Cookie["name"].Value.ToString();
}

5.  使用Server.Transfer方法

这个才可以说是面象对象开发所使用的方法,其使用Server.Transfer方法把流程从当前页面引导到另一个页面中,新的页面使用前一个页面的应答流,所以这个方法是完全面象对象的,简洁有效。

a.aspx的C#代码

public string Name
{
    get{ return Label1.Text;}
}
private void Button1_Click(object sender, System.EventArgs e)
{
    Server.Transfer("b.aspx");
}

b.aspx中C#代码
private void Page_Load(object sender, EventArgs e)
{
    a newWeb;   //实例a窗体
    newWeb = (source)Context.Handler;
    string name;
    name = newWeb.Name;
}

 

注释:第五个方法似乎实例窗体的方法有问题,反正大概意思已经有了,只是拿来作为参考了。

posted @ 2008-10-23 16:05 zhangsir 阅读(19) 评论(0)  编辑

返回制定页码的数据集:

Code

 

 

 

posted @ 2008-08-21 15:12 zhangsir 阅读(112) 评论(0)  编辑
posted @ 2008-07-25 18:07 zhangsir 阅读(8) 评论(0)  编辑
posted @ 2008-07-04 17:01 zhangsir 阅读(44) 评论(0)  编辑
posted @ 2008-06-07 14:05 zhangsir 阅读(66) 评论(0)  编辑
posted @ 2008-06-04 14:40 zhangsir 阅读(51) 评论(0)  编辑
posted @ 2008-06-04 14:22 zhangsir 阅读(25) 评论(0)  编辑