server.mappath 与page命名空间说明

一   .Server.MapPath的命名空间:

     习惯用Access的朋友都知道:ADO.NET链接Access数据库经常这么写:
strcon="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+Server.MapPath("datebase/indexDB.mdb");
这里用Server.MapPath得到应用程序的物理路径!如果你是在当前web项目
下的一个类中如上写链接语句,可能会提示找不到Server、因为Server的完整路径是System.Web.HttpContext.Current.Server。using System.Web是显然不够的;但是在从内置Page类继承的类中可以直接写Server.MapPath"data.mdb"),应该是因为Page类已经包含了这些类路径。
     如果你从Page类继承的类中执行这条语句,才可以简单地使用
DataBase = Server.MapPath("data.mdb");
否则写全命名空间:System.Web.HttpContext.Current.Server.MapPath();
注意:如果是在一个类库下的一个类中、要先添加引入using System.Web;因为新建一个类库时默认是不引入using System.Web的!

总结:System.Web.HttpContext.Current.Server.MapPath():

二。Server.MpaPath()的用法

老是忘记Server.MapPath的使用方法了,下面记录一下,以备后用:
总注:Server.MapPath获得的路径都是服务器上的物理路径,也就是常说的绝对路径
1、Server.MapPath("/")
注:获得应用程序根目录所在的位置,如 C:\Inetpub\wwwroot\。
2、Server.MapPath("./")
注:获得所在页面的当前目录,等价于Server.MapPath("")。
3、Server.MapPath("../")
注:获得所在页面的上级目录。
4、Server.MapPath("~/")
注:获得当前应用级程序的目录,如果是根目录,就是根目录,如果是虚拟目录,就是虚拟目录所在的位置,如C:\Inetpub\wwwroot\Example\。


三。例子:

private void UpFile()
        {
            string imgExt;

            string FilePath = Server.MapPath("/DownLoad/");
            HttpFileCollection HFC = Request.Files;
            for (int i = 0; i < HFC.Count; i++)
            {
                HttpPostedFile HF = HFC[i];
                try
                {
                    //上传的格式
                    imgExt = System.IO.Path.GetExtension(HFC[i].FileName).ToString().ToLower(); //imgExt来接收文件的后缀名
                    if (imgExt != ".jpg" && imgExt != ".gif" && imgExt != ".png" && imgExt != ".rar")
                    {
                        Response.Write("<Script Language='JavaScript'>alert('上传的文件格式错误。');</Script>");
                        return;
                    }
                    //判断是否有文件上传,如果>0,说明有文件上传,反之则相反。
                    if (HFC[i].ContentLength > 0)
                    {
                        //判断上传文件的大小
                        int len = HFC[i].ContentLength / (1024);
                        if (len <= 1024)
                        {
                            //HF.SaveAs(FilePath + System.IO.Path.GetFileName(HF.FileName));
                            FileName= DateTime.Now.ToString("yyyyMMddHHmmss");
                            HF.SaveAs(FilePath + FileName + imgExt);
                            Page.RegisterStartupScript("sb1", "<script>alert('上传成功!')</script>");
                        }
                        else
                        {
                            Page.RegisterStartupScript("sb1", "<script>alert('对不起,附件太大了!')</script>");
                        }
                    }
                    else
                    {
                        Page.RegisterStartupScript("sb4", "<script>alert('对不起,请先选择上传的文件路径!')</script>");
                    }
                }
                catch
                {
                    Page.RegisterStartupScript("sb2", "<script>alert('对不起,下载失败!')</script>");
                }

            }
        }


代码到此结束:需要我们在前台建立一个<asp:FileUpload ID="FileUpload1" runat="server" />

然后去调用即可。


四。Page的命名空间

System.Web.UI.Page

有什么不足的,还请大家多多指教!


命名空间:

ASP.NET中命名空间的简单介绍
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;


初学者在创建一个Web窗体时,默认情况下在该窗体代码文件里,自动添加了以上10个命名空间(namespace)。如果程序员需要做数据库编程,就要手动添加System.Data.SqlClient。以下,就对这些常见的命名空间做简单的介绍。
1.
   System    
   包含用于定义常用值和引用数据类型、事件和事件处理程序、接口、属性和处理异常的基础类和基类。    
   其他类提供支持下列操作的服务:数据类型转换,方法参数操作,数学计算,远程和本地程序调用,应用程序环境管理以及对托管和非托管应用程序的监管。    
2.
   System.Collections    
   包含定义各种对象集合(如列表、队列、位数组、哈希表和字典)的接口和类。    
3.    
   System.ComponentModel    
   提供用于实现组件和控件的运行时和设计时行为的类。此命名空间包括用于属性和类型转换器的实现、数据源绑定和组件授权的基类和接口。   
4.
   System.Data  
   主要由构成ADO.NET结构的类组成。ADO.NET结构使您能够生成有效地管理来自多个数据源的数据的组件。在断开连接的情形中(如    Internet),ADO.NET提供在多层系统中请求、更新和协调数据的工具。ADO.NET结构也在客户端应用程序(如ASP.NET创建的Windows窗体或 HTML页)中实现。
5.
   System.Drawing
   命名空间提供了对 GDI+ 基本图形功能的访问。在 System.Drawing.Drawing2D、System.Drawing.Imaging以及System.Drawing.Text命名空间中提供了更高级的功能。Graphics类提供了绘制到显示设备的方法。诸如Rectangle和Point等类可封装GDI+基元。Pen类用于绘制直线和曲线,而从抽象类Brush派生出的类则用于填充形状的内部。
6.
   System.Web
   命名空间提供使得可以进行浏览器与服务器通讯的类和接口。此命名空间包括提供有关当前HTTP请求的广泛信息的HttpRequest类、管理对客户端的HTTP输出的HttpResponse类以及提供对服务器端实用工具与进程的访问的HttpServerUtility类。还包括用于Cookie操作、文件传输、异常信息和输出缓存控制的类。
   其中,HttpResponse 封装来自 ASP.NET 操作的 HTTP 响应信息。HttpServerUtility 提供用于处理 Web 请求的 Helper 方法。
7.
   System.Web.SessionState
   命名空间提供可将特定于某个单个客户端的数据存储在服务器上的一个Web应用程序中的类和接口。会话状态数据用于向客户端提供与该应用程序保持持久连接的样式。状态信息可以存储在本地进程内存中,或者,对于网络场配置,也可以使用ASP.NET状态服务或SQL Server数据库将其存储在进程之外。会话状态可以与不支持Cookie的客户端一起使用。ASP.NET可以配置为对客户端和服务器之间传输的URL字符串中的会话ID进行编码。
8.
   System.Web.UI
   命名空间提供的类和接口使您得以创建将作为用户界面元素出现在您的 Web 应用程序中的 ASP.NET 服务器控件和页。此命名空间包含控件类,该类为所有服务器控件(不论是 HTML 服务器控件、Web 服务器控件还是用户控件)提供了一组通用功能。它还包含页类,每当对包含在您的 Web 应用程序中的 .aspx 文件发出请求时,都会自动生成该类。从这两种类都可以继承。还提供了一些类,这些类为服务器控件提供了数据绑定功能、保存给定控件或页的视图状态的能力,以及对可编程控件和文本控件的分析功能。
9.
   System.Web.UI.WebControls
   命名空间是由类组成的集合,可利用它在Web页上创建Web服务器控件。Web服务器控件运行在服务器上并且包括按钮和文本框等窗体控件。它们还包括特殊用途的控件(如日历)。由于Web服务器控件运行在服务器上,因此可以以编程方式控制这些元素。Web服务器控件比HTML服务器控件更抽象。它们的对象模型并不一定反映HTML语法。
10.
   System.Web.UI.HtmlControls
   命名空间是允许在 Web 窗体页上创建 HTML 服务器控件的类的集合。HTML 服务器控件运行在服务器上,并且直接映射到受大多数浏览器支持的标准 HTML 标记。这使您得以以编程方式控制 Web 窗体页上的 HTML 元素。
11.System.Data.SqlClient
   命名空间是SQL Server .NET Framework数据提供程序。SQL Server .NET Framework数据提供程序描述了一个类集合,这个类集合用于访问托管空间中的SQL Server数据库。使用SqlDataAdapter,可以填充驻留在内存中的DataSet,该数据集可用于查询和更新数据源。
   SqlDataAdapter 表示用于填充 DataSet 和更新 SQL Server 数据库的一组数据命令和一个数据库连接。不能继承此类。
   SqlDataReader 提供一种从数据库读取只进的行流的一种方式。不能继承此类。
   SqlCommand 表示要对 SQL Server 数据库执行的一个 Transact-SQL 语句或存储过程。不能继承此类。
   SqlConnection 表示 SQL Server 数据库的一个打开的连接。不能继承此类。

posted @ 2010-12-06 10:52  TerryChou  阅读(4703)  评论(0编辑  收藏  举报