Asp.net 13题

前记:把ASP.NET上课的说的13题目整理了一下,只是自己复习的总节,不是最后的考试的题目,请注意,大家看下是否正确吧,源码+本文Word版(18日更新第11题)群中的那份杨丽美整理的asp.net期末复习总结DOC


Asp.net 13

                                              --ly整理于2007-1-17

1.   服务器瑞添加代码的三种方式P91

:1>混合代码<%%>

2>内联代码<script></script>

3>隐藏代码

2.   什么是组件,组件是由哪个项目模板创建,为什么创建?P50

:组件是编译成DLL文件的类.是由类库这个项目模板创建的,组件可以被不同的应用程序共享.

3.   绑定DataGridDropDownList控件(选择表中的一例)详细见 DropDownList.aspx”

:

前提:在数据库中有一张表为”System_Dept”其中有一例为”DeptName”,页面上还有一个DropDownList ” DDLDept”(因为要边连数据库.代码就不实现了)

 

1>绑定DropDwonList控件

主要代码如下:

private void Page_Load(object sender, System.EventArgs e)

{

// 在此处放置用户代码以初始化页面

if(!Page.IsPostBack)

{

//页面初始化时绑定数据

string

CnnString=System.Configuration.ConfigurationSettings.AppSettings["DBConnectionString"];

SqlConnection Connection = new SqlConnection(CnnString);

Connection.Open();

string cmdStr="select DeptName from System_Dept";

SqlCommand cmd=new SqlCommand(cmdStr,Connection);

SqlDataReader dr=cmd.ExecuteReader();

DDLDept.DataSource=dr;

DDLDept.DataTextField="DeptName";

DDLDept.DataValueField="DeptName";

DDLDept.DataBind();

dr.Close();

}

}

2>绑定到DataGrid控件

            string strConStr="";//这里写连接字符串

              string selectString = "Select * from System_Dep";

              DataSet ds = new DataSet();

              SqlConnection con = new SqlConnection(strConStr);

              SqlDataAdapter da = new SqlDataAdapter(selectString,con);

              da.Fill(ds);

              this.DataGrid1.DataSource = ds;

              DataGrid1.DataBind();

 

4.   调用xml WEB Service协议有哪些?代理和xml Web Service通常使用什么协议?要公开web方法应该给方法添加什么属性?

:

1>HTTP,GET,Post,SOAP

2>SOAP

3>[WebMethod] 

5.   DataSet 数据写到xml,xml文档填入Dataset

:

1>    先由xml文件转dataset,详细代码见源码

 #region GetDataSetByXml

         /// <summary>

         /// 读取xml直接返回DataSet

         /// </summary>

         /// <param name="strXmlPath">xml文件相对路径</param>

         /// <returns></returns>

         public static DataSet GetDataSetByXml(string strXmlPath)

         {

              try

              {

                   DataSet ds = new DataSet();

                   ds.ReadXml(GetXmlFullPath(strXmlPath));////读取XMLDataSet

                   if(ds.Tables.Count > 0)

                   {

                       return ds;

                   }

                   return null;

              }

              catch(Exception expInGetDataSetByXml)

              {

                   string str = expInGetDataSetByXml.ToString();

                   return null;

              }

         }

         #endregion

 

         /// <summary>

         /// 返回完整路径

         /// </summary>

         /// <param name="strPath">Xml的路径</param>

         /// <returns></returns>

         public static string GetXmlFullPath(string strPath)

         {       

              if(strPath.IndexOf(":") > 0)////如果路径中含有:符号,则认定为传入的是完整路径

              {

                   return strPath;

              }

              else

              {

                   return System.Web.HttpContext.Current.Server.MapPath(strPath);////返回完整路径

              }

         }

2>    DataSet生成一个xml文件,详细代码见源码

/// <summary>

         /// 将一个dataset写入一个xml文件

         /// </summary>

         /// <param name="thisDataSet">要写入datasetxml文件</param>

         /// <param name="filename">xml的文件名</param>

         /// <param name="fileAccess">写入xml的的写入方式</param>

         public  void WriteXmlToFile(DataSet thisDataSet,string filename,System.IO.FileMode fileAccess)

         {

              System.IO.FileStream myFileStream;

              try

              {

                   if (thisDataSet == null) { return; }

                   // Create a file name to write to.

                   // Create the FileStream to write with.

                   myFileStream = new System.IO.FileStream

                       (filename,fileAccess);

                   // Create an XmlTextWriter with the fileStream.

                   System.Xml.XmlTextWriter myXmlWriter =

                       new System.Xml.XmlTextWriter(myFileStream, System.Text.Encoding.Unicode);

                   // Write to the file with the WriteXml method.

                   thisDataSet.WriteXml(myXmlWriter);  

                   myXmlWriter.Close();

              }

              catch(System.Exception e)

              {

                   throw new System.IO.IOException("在将dataset写入xml文件出现异常,请检查");

              }

         }

 

 

6.   创建Cookies文件,期限P416  10
(把过期时间设成15天070118日修改)

:

1>Cookies,见代码” WriteCookies.aspx”(Cookie)和读Cookie” ReadCookies.aspx”,下面只写出写Cookie的代码

 

              HttpCookie myCookie = new HttpCookie("MyTestCookie");

              DateTime now = DateTime.Now;

              //设置cookie的值

              myCookie.Values["userName"]="Jack";

              myCookie.Values["phone"]="123456";

              myCookie.Values["zipcode"]="10001";

              myCookie.Values["Email"]="Jack@hotmail.com";

              //设置Cookies过期的期限,这里是15天

              myCookie.Expires = now.AddDays(15);

              // 加入 cookie.

              Response.Cookies.Add(myCookie);

 

7.   创建两表之前的关系,详细代码见” DataRelationShip.aspx”

:

         /// <summary>

         /// 在一个dataSet中创建两个表,里面有表关系

         /// </summary>

         private void DemonstrateReadWriteXMLDocumentWithStreamReader()

         {

              //创建第一章表,主表,有两例,id(主键),item

              DataSet OriginalDataSet = new DataSet("myDataSet");

              OriginalDataSet.Namespace= "NetFrameWork";

              DataTable myTable = new DataTable("myTable");

             

              DataColumn c1 = new DataColumn("id", Type.GetType("System.Int32"));

              c1.AutoIncrement= true;

              DataColumn c2 = new DataColumn("item");

              myTable.Columns.Add(c1);

              myTable.Columns.Add(c2);

              OriginalDataSet.Tables.Add(myTable);

              //加入行

              DataRow newRow;

              for(int i = 0; i < 10; i++)

              {

                   newRow = myTable.NewRow();

                   newRow["item"]= "item " + i;

                   myTable.Rows.Add(newRow);

              }

 

              //创建第二个表,有三例,有名字,地址,注释

              DataTable tbDetails = new DataTable("tbDetails");//第一张表的详细信息

              DataColumn cId = new DataColumn("id", Type.GetType("System.Int32"));

              DataColumn cName = new DataColumn("strName",Type.GetType("System.String"));

              DataColumn cAdress = new DataColumn("strAdress",Type.GetType("System.String"));

              DataColumn cRemark = new DataColumn("strRemark",Type.GetType("System.String"));

              tbDetails.Columns.Add(cId);

              tbDetails.Columns.Add(cName);

              tbDetails.Columns.Add(cAdress);

              tbDetails.Columns.Add(cRemark);

              OriginalDataSet.Tables.Add(tbDetails);

              OriginalDataSet.AcceptChanges();

              //给两张表做一个DataRelation

              DataColumn parentCol;

              DataColumn childCol;

              parentCol = OriginalDataSet.Tables["myTable"].Columns["id"];

              childCol = OriginalDataSet.Tables["tbDetails"].Columns["id"];

              //创建DataRelation.

              DataRelation relCustOrder;

              relCustOrder = new DataRelation("CustomersOrders", parentCol, childCol);

              //DataRelation加入DataSet

              OriginalDataSet.Relations.Add(relCustOrder);  

}// DemonstrateReadWriteXMLDocumentWithStreamReader

8.   pageLayout属性的两个选项

:

pageLayout 属性设置当前 HTML 文档的元素定位首选项。可用于该属性的值有:

  • GridLayout   绝对定位属性插入到添加的元素中并在移动的元素中更新。可以在整个设计视图表面上拖动元素。可以使用定位网格和网格线对齐
  • FlowLayout   元素不带绝对定位属性添加。Web 浏览器按元素在页上出现的顺序从上到下排列元素。不能在设计视图表面上拖动元素或者使用定位网格。

 

9.   哪些是部署asp.net程序必要的文件P438

:1>\bin目录下以及里面的DLL文件

    2>所有的Web窗体,用户控件和XML Web Service文件(.aspx,.ascx.asmx)

    3>配置文件,包括Web.configGlobal.asax

    4>本目录中的所有附加支持文件(例如XML文件)

 

10. Page类的IsPostBack属性与IsValid属性

:Page类的IsPostBack属性

获取一个值,该值指示该页是否正为响应客户端回发而加载,或者它是否正被首次加载和访问。属性值:如果是为响应客户端回发而加载该页,则为 true;否则为 false

PageIsValid属性属性值:获取一个值,该值指示页验证是否成功。如果页验证成功,则为 true;否则为 false

备注: 若要使该属性返回 truePage.Validators 属性中的所有验证服务器控件必须都验证成功。只有在已调用 Page.Validate 方法,或已在开始窗体处理的 ASP.NET 服务器控件的 OnServerClick 处理程序中将 CausesValidation 属性设置为 true 后才可以选中该属性。

 

 

11. 统计在线人数要在Globle.cs里添加什么代码
(于070118修改,在写Application时加入了是否为空的判断

 

Globle.cs

……..

     protected void Session_Start(Object sender, EventArgs e)

          {

             

                  

                   if(null==Application["count"])

                       Application["count"] = 1;

                   else

                   {

                            Application.Lock();

                            Application["count"]=((int)Application["count"])+1;

                            Application.UnLock();

                   }

             

         }

……

         protected void Session_End(Object sender, EventArgs e)

         {

             

             

                  

                   if(null==Application["count"])

                       Application["count"] = 0;

                   else

                   {

                            Application.Lock();

                            Application["count"]=((int)Application["count"])-1;

                            Application.UnLock();

                   }

             

         }

12. 比较DataSetDataReader

:

DataSetDataReader
当设计应用程序时,要考虑应用程序所需功能的等级,以确定使用DataSet或者是DataReader
要通过应用程序执行以下操作,就要使用DataSet
r
在结果的多个离散表之间进行导航。
r
操作来自多个数据源(例如,来自多个数据库、一个XML文件和一个电子表格的混合数据)的数据。
r
在各层之间交换数据或使用XML Web服务。与DataReader不同的是,DataSet能传递给远程客户端。
r
重用同样的记录集合,以便通过缓存获得性能改善(例如排序、搜索或筛选数据)。
r
每条记录都需要执行大量处理。对使用DataReader返回的每一行进行扩展处理会延长服务于DataReader的连接的必要时间,这影响了性能。
r
使用XML操作对数据进行操作,例如可扩展样式表语言转换(XSLT转换)或XPath查询。

对于下列情况,要在应用程序中使用DataReader
r
不需要缓存数据。
r
要处理的结果集太大,内存中放不下。
r
一旦需要以仅向前、只读方式快速访问数据。
注填充DataSet时,DataAdapter使用DataReader。因此,使用DataAdapter取代DataSet提升的性能表现为节省了DataSet占用内存和填充DataSet需要的循环。一般来说,此性能提升只是象征性的,因此,设计决策应以所需功能为基础。

 

13. Web.config配置跟踪的几个属性

详见http://chs.gotdotnet.com/quickstart/aspplus/

Web.config文件中

<configuration>
  <system.web>
    <trace
      enabled="true"
      traceMode="SortByCategory"
      requestLimit="40"
      pageOutput="false"
      localOnly="true"
    />
  </system.web>
</configuration>

 

说明

enabled

设置为 true | false,指示是否为应用程序启用跟踪(默认为 false

pageOutput

设置为 true | false 指示跟踪信息是呈现在每页的最后,还是仅能通过 trace.axd 实用工具访问(默认为 false

requestLimit

存储在服务器上的跟踪请求的数目(默认为 10

traceMode

设置为 SortByTime | SortByCategory,指示跟踪消息的显示顺序(默认为 SortByTime

localOnly

设置为 true | false,指示是为本地主机用户还是为所有用户启用跟踪(默认为 true

 

 前记:把ASP.NET上课的说的13题目整理了一下,只是自己复习的总节,不是最后的考试的题目,请注意,大家看下是否正确吧,源码+本文Word版(18日更新第11题)群中的那份杨丽美整理的asp.net期末复习总结DOC

 

 

参考文献

1.   MSDN

2.   <面向.NETWEB应用程序设计>

 

posted @ 2007-01-17 20:50  刘寅  阅读(820)  评论(6)    收藏  举报