zoukankan      html  css  js  c++  java
  • 2013NET笔试题及答案

    .NET概述

    一、名词解释

    1. MSIL:Microsoft  Intermediate  Language(微软中间语言),是一种类似Java字节码的语言,也是为了能在不同平台移植所生成的中间代码。
    2. JIT:Just in Time 即时编译
    3. CLR:Common language runtime  通用语言运行时
    4. CLS:Common Language System  通用语言系统
    5. CTS:Common Type System 通用类型系统,定义了可以在中间语言中使用的预定义数据类型,所有用于.NET Framework 的语言都可以生成最终基于这些类型的编译代码
    6. FCL:Framework Class Library  .Net框架类库

    二、选择

    1. 当你在编写C#代码时,按了“F1”,你将获得(B)
      1. 一个错误信息
      2. 上下文帮助
      3. windows帮助
      4. 打印帮助
    2. 在.NET中,程序员在代码中漏写了一个大括号,这属于(C)
      1. 逻辑错误
      2. 运行时错误
      3. 语法错误
      4. 自定义错误

    三、填空

    1. .NET Framework 两个主要组件分别是____公共语言运行库__.NET Framework 类库
    2. 公共语言运行库管理内存线程执行代码执行代码安全验证编译以及其他系统服务
    3. .NET Framework有两大主要特征:跨平台跨语言
    4. .NET平台基于两种核心技术,即XMLInternet协议套件

    四、问答

    1. 简述CLR(Common Language Runtime,通用语言运行环境)在.NET Framework中的作用?

    答:公共语言运行库管理内存、线程执行、代码执行、代码安全验证、编译以及其他系统服务。这些功能是在公共语言运行库上运行的托管代码所固有的

    1. JIT编译器主要功能是什么?

    答:实时编译的功能将所有托管代码能够以它在其上执行的系统的本机语言运行。

    1. 什么是DOTNET?DOTNET可开发什么应用程序?

    答:.NET 是一种框架,一种平台,一种为下一代 Internet 服务的全新体系结构。

    DOTNET可开发Web窗体、Windows窗体、Windows控制台应用程序、Window服务、Web服务等等。

    1. 编写一个控制台应用程序,在控制台上显示出“你好,欢迎进入C#的世界!”

    答:using System;

    namespace Exercise

    {

    class Program

    {

    static void Main()

    {

    Console.WriteLine(“你好,欢迎进入C#的世界!”);

    }

    }

    }

    1. C#源代码编译成为本地代码的编译过程?

    答:源代码 → 编译器(1次编译)→ 中间语言(.exe)→ CLR(JIT 2次编译)→ 本地代码

     数据类型

    一、名词解释

    1. 表达式:是指操作数和运算符的组合

    二、选择

    1. 下列选项中,(C)是引用类型?
      1. enum类型
      2. struct类型
      3. string类型
      4. int类型
    2. C#的数据类型有(B)

    A、值类型和调用类型

    B、 值类型和引用类型

    C、 引用类型和关系类型

    D、关系类型和调用类型

    1. 以下哪个类是int的基类?(  A )

    A.Int32          B.Dotnet              C.double              D.System.Data

    1. 下列选项中,哪个是引用类型(C   )

    A.char类型                                                B.double类型

    C.string类型                                                D.int类型

    1. 在C#中,下列变量定义与赋值正确的是( D   )

    A. int a=同学;

    B. float a=老师;

    C. double a=教室;

    D.string a=“学校”;

    1. 在C#中,下列表达式计算正确的是(B C)

    A、10%3=3

    B、 10/3=3

    C、 10%3=1

    D、10/3=1

    1. 值类型存储于     (A)          

    A、堆栈

    B、  堆      

    C、 .队列

    1. C#中的所有数据类型都派生自(D)类

    A、String

    B、  Int64    

    C、  Int32

    D、Object

    三、填空

    1. sizeof typeof 运算符的作用获取对象的大小和类型、。
    2. C#字符串是使用string  关键字声明的,实际是它是一个引用类型。
    3. 装箱是把 值   类型转换到引用类型 
    4. 装箱、拆箱操作发生在引用类型值类型之间

    四、问答

    1. const和static readonly的区别?

    答:用const修饰符声明的成员叫常量,在编译期初始化并嵌入到客户端的程序。用static readonly声明的成员依然是变量,只不过具有和常量类似的使用方法,通过类进行访问,初始化后不可以修改。

    1. bool类型有哪两个值?这两个值可以赋值给int变量吗?

    答: True/False ,不能

    1. C#有那些数据类型?他们之间的区别?

    答:C#支持的数据类型有:

    值类型

    包括:简单类型、结构类型、枚举类型。其中,简单类型又分为:整型、布尔型、字符型、浮点型、小数型。

    引用类型

    包括:对象类型、类类型、接口、元数据、字符串类型、数组。

    值类型和引用类型的区别在于,值类型的变量直接存放实际的数据,而引用类型的变量存放的则是数据的地址,即对象的引用。

    1. 值类型存储于内存的哪个区?

    答:值类型存储于栈区

    1. C#中的所有数据类型都继承于哪个类?

    答:C#中所有数据类型都继承于Object。

    1. 写出下列赋值表达运算后a的值,设原来a=12,n=5。a和n都定义为整型变量

    答:   (1) a+=a      值为:24

    (2) a-=a       值为:0

    (3)a* = 2+3      值为:27

    (4) a%=(n%=2)       值为:0

    (5)a/=a+a       值为:13

    (6)a+=a-=a*=a      值为:-120

    第一章 结构、枚举

    一、名词解释

    1. Bll:bussiness logic layer 业务逻辑层

    二、选择

    1. 以下是一些C#中的枚举型的定义,其中错误的用法有(A)?
      1. public enum var1{ Mike = 100, Nike = 102, Jike }
      2. public enum var1{ Mike = 100, Nike, Jike }
      3. public enum var1{ Mike=-1 , Nike, Jike }
      4. public enum var1{ Mike , Nike , Jike }

    三、填空

    1. 结构体的关键字是struct
    2. 枚举的关键字是enum
    3. 枚举是   类型, 结构是   类型。
    4. 结构只能  定义带参数的构造函数, 不能 继承其它结构或者类。

    四、问答

    1. 结构和类有什么相似处和区别

    答:结构是值类型,而类是引用类型。

    向方法传递结构时,结构是通过传值方式传递的,而类是作为引用传递的

    与类不同,结构的实例化可以不使用 new 运算符

    结构可以声明构造函数,但它们必须带参数

    一个结构不能从另一个结构或类继承,而且不能作为一个类的基。所有结构都直接继承自 System.ValueType,后者继承自 System.Object

    不能在结构中初始化实例字段

    1.  定义结构体类型的格式为:

    答:struct <结构体类型名>

    {

    <成员类型1> <成员名1>;

    <成员类型2> <成员名2>;

    <成员类型n> <成员名n>;

    };

    1. 什么是枚举?

    答:枚举是一个指定的常数,是一组已命名的数值常量。枚举是值类型的一种特殊形式。枚举从System.Enum继承而来

    第二章 程序控制语句

    一、选择

    1. 下面那些不是循环语句(D)

    A、      while

    B、       do

    C、       for

    D、      if…else

    二、填空

    1. Switch语句中,每个case后是使用break语句来结束。
    2. 跳转语句有breakcontinuegotoreturn
    3. 循环结构用于对一组命令执行一定的次数或反复执行一组命令,直到指定的条件为真。
    4. C#语言中基本语句可以分为三种:赋值语句选择语句循环语句
    5. 循环结构的类型有 whiledoforforeach

    三、问答

    1. Continue和Break的区别是什么?

    答:Continue是中断本次循环,进入一下次的循环

    Break是中断整个循环

    1. while 和do…while循环的区别?

    答:While循环先判断条件是否满足再执行,而do…while先执行然后判断条件是否成立。

    第三章 类、对象、构造

    一、名词解释

    1. OOP:object-oriented programming 面向对象编程,所谓“对象”就是一个或一组数据以及处理这些数据的方法和过程的集合。面向对象的程序设计完全不同于传统的面向过程程序设计,它大大地降低了软件开发的难度
    2. OOD:Object Oriented Design面向对象设计 将OOA的结果转化成与现实需求更贴切的系统和对象设计,利用一系列相互协作的软件对象来进行软件设计。
    3. OOAObject Oriented Analysis面向对象分析 评估用户需求和需要解决的问题。针对用户问题的静态、动态和功能等,输出会提供相应的概念设计。

    二、选择

    1. 下列关于构造函数的描述正确的是(C)

    A、构造函数可以声明返回类型。

    B、 构造函数不可以有private修饰

    C、 构造函数通常与类名相同

    D、构造函数不能带参数

    1. 下列哪一个不是类成员是(D)

    A、属性

    B、 数组

    C、 索引器

    D、循环结构

    三、填空

    1. 析构函数一个类只有 1  
    2. 一个类有个构造函数
    3. 构造函数具有与类相同的名称  ,它通常初始化新对象的数据成员。

    四、问答

    1. 方法的签名是指 ?

    答:方法名和该方法的参数列表,类型,大小,位置。

    1. 请简述C#中结构与类的区别?

    答:数据类型不同:结构是值类型,值类型在堆栈上分配地址,所有的基类型都是结构类型,类是引用类型,引用类型在堆上分配地址。

    继承性:结构不能从另外一个结构或者类继承,本身也不能被继承,类完全可扩展的,除非显示的声明 sealed,否则类可以继承其他类和接口,自身也能被继承,虽然结构不能被继承 可是结构能够继承接口,方法和类继承接口一样

    内部结构:结构没有默认的构造函数,但是可以添加构造函数 ,没有析构函数,没有 abstract 和 sealed(因为不能继承) ,不能有 protected 修饰符,可以不使用 new 初始化 ,在结构中初始化实例字段是错误的。类有默认的构造函数 ,有析构函数,可以使用 abstract 和 sealed,有 protected 修饰符,必须使用 new 初始化。

    第四章 访问关键字、命名空间

    一、选择

    1. “访问范围限定于此程序或那些由它所属的类派生的类型”是对以下哪个成员可访问性含义的正确    描述?( B  )

    A.public                                           B.protected

    C.internal                                        D.protected internal

    1. “访问范围限定于只能在自己本身”是对以下哪个成员可访问性含义的正确描述( D )

    A.public                                           B.protected

    C.internal                                        D.private

    二、填空

    1. 无返回值的关键字是void
    2. 访问修饰符有public private protectedinternal.
    3. 命名空间实际上是一种组织相关类 和其他类型的方法
    4. 命名空间是隐式公共的。不能通过指定 问修饰符  写其访问属性。不能将命名空间设置为受保护的、私有的或内部的,因此它们只能作为公共的存在
    5. 引用命名空间的关键字是using

    三、问答

    1. 静态成员和非静态成员的区别?

    答:静态成员用static修饰符声明,在类被实例化时,通过类进行访问,不带有static修饰符声明的变量称做非静态变量,在对象被实例化时创建,通过对象进行访问一个类的所有实例的同一静态变量都是一个值,同一个类的不同实例的同一非静态变量可以是不同的值。

    1. C#访问修饰符有哪些,分别有什么作用?

    答:public:访问不受限制。

    protected:访问仅限于包含类或从包含类派生的类型。

    Internal:访问仅限于当前程序集。

    protected internal:访问仅限于当前程序集或从包含类派生的类型。

    private:访问仅限于包含类型。

    第五章 继承

    一、选择

    1. 在堆栈上创建对象和调用构造函数时,通常使用(B )关键字
    1. Typeof
    2. New
    3. As
    4. is

    二、填空

    1. override即 重写 是指重写基类的方法(方法的覆盖)
    2. override用来重写父类的方法,重载使用相同名的方法或操作符拥有不同类型的参数
    3. 关键字base 用于派生类的构造函数显示调用基类构造函数
    4. 一个类可以有能力直接从另一个类获得其代码和数据,派生类从基类那里获得其所有成员的是继承  
    5. 调用基类构造函数,运用base关键字。
    6. 虚方法的关键字是virtual
    7. C#提供virtual关键字,用于将方法定义为支持多态。
    8. Override 关键字用于重写基类的虚拟方法。
    9. 面向对象的特征有封装继承 多态.

    三、问答

    1. C#中类可以实现多继承吗?通过什么方式实现呢?

    答:C#中类不能够多继承,必须通过接口实现。

    1. 继承是面向对象编程的一个重要的概念.请简述继承的概念和优点.

    答:继承:一个类可以有能力直接从另一个类获得其代码和数据,派生类从基类那里获得其所有成员。

    优点:使用继承无需从头开始创建新类,便可以在现有类的基础上添加新方法、属性和事件(事件是对用户操作)的响应。,既省时又省力。

    1. 说明base关键字、new关键字和override关键字各自的作用。

    答:关键字base,用于派生类的构造函数显示调用基类构造函数。

    new访问修饰符用于显示隐藏继承自基类的成员,即如果派生的类成员的名称与基类成员名称相同,new关键字会将派生类成员识别为一个全新的成员。

    关键字override用于修改方法,具有override关键字修饰的方法是对基类中同名方法的新实现,

    第六章 抽象类、接口

    一、选择

    1. 下列描述错误的是(D)

    A、类不可以多重继承而接口可以

    B、 抽象类自身可以定义成员而接口不可以

    C、 抽象类和接口都不能被实例化

    D、一个类可以有多个基类和多个基接口

    1. 以上描述错误的是(A)
      1. 在C++中支持抽象类而在C#中不支持抽象类
      2. C++中可在头文件中声明类的成员而在CPP文件中定义类的成员,在C#中没有头文件并且在同一处声明和定义类的成员
      3. 在C#中可以使用NEW修饰符显示隐藏从基类继承的成员。
      4. 在C#中要在派生类中重新定义基类的虚函数必须在前面加上override。
    2. 下列关于接口的描述不正确的是(B)
      1. 接口描述了组件对外提供的服务,在组件和组件之间,组件和接口之间都是通过接口进行交互的
      2. 一个组件可以实现多个接口,而一个特定的组件接口只可以被一个组件来实现
      3. 接口是组件之间的协议,接口一旦发布,组件发布者就应该尽量保持接口不变,否则将影响现有系统的运行
      4. 接口声明实际就是一种定义新的接口的类型的声明 。接口使用interface 来定义
    3. 在C#中,多继承通过(  B  )来实现

    A.属性                                                          B.接口

    C.索引器                                                       D.方法

    1. 以下叙述正确的是: (ABC    )

    A. 接口中可以有虚方法。                          B. 一个类可以实现多个接口。

    C. 接口不能被实例化。                            D. 接口中可以包含已实现的方法。

    1. 虚方法的执行方式可以被派生类改变,这种改变通常通过(A )实现.

    A、方法重载

    B、 构造方法

    C、 值方法

    D、引用型方法

    二、填空

    1. 抽象类的关键字是abstract
    2. 密封类的关键字是sealed
    3. 抽象类的方法 可以 实现,接口的方法 必须 实现。
    4. 接口不能被实例化
    5. 不可以多重继承 而接口可以
    6. 抽象类自身可以定义成员而接口不可以
    7. 一个类可以实现多个接口
    8. 虚方法 可以在派生类 重写,抽象方法 必须在每个非抽象的派生类中 重写。
    9. 如果Alpha类继承自BETA类,则Alpha类称为  派生类     ,BETA类称为   基类     。
    10. 有一个基类Person,一个接口Iteller。类Employee要同时继承类和接口,则其正确的写法应该是   public class Employee : Person,Itrller 
    11. 接口是一种引用类型,在接口中可以声明方法、属性、索引器和事件,但不可以声明公有的域或私有的成员变量。

    三、问答

    1. Sealed修饰符是干什么的?

    答:表示密封类,用于类时表明该类不能被继承,不能和abstract同时使用,因为这两个修饰符在含义上互相排斥,用于方法和属性时,表示该方法 或属性不能再被继承,必须和override关键字一起使用,因为使用sealed修饰符的方法或属性肯定是基类中相应的虚成员

    1. 简述抽象类的定义以及在C#编程语言中,抽象类的作用是什么?

    答: 有时,我们只需要继承某个特定类,但不需要实例化该类的对象。这样的类成为抽象基类。C#允许通过在类中添加abstract关键字来创建抽象基类。

       作用: 在抽象基类中,可以指定一个方法而不指定其代码主体。这意味着抽象基类保存着方法的定义,而方法的实际实现则写在派生类中

    1. 声明抽象方法注意一下几点?

    答: 1.抽象基类除了抽象方法外,还可以包含已实现的方法。

    2.操作需要用abstract关键字来标识。

    3.操作的定义始终已分号结束。

    第七章 属性、索引器、迭代器

    一、选择

    1. 下列关于C#索引器理解正确的是(C)

    A、索引器的参数必须是两个或两个以上

    B、 索引器的参数类型必须是整数型

    C、 索引器没有名字

    D、以上皆非

    二、填空

    1. 要声明类或结构上的索引器,使用this关键字
    2. 属性是一个或两个代码,表示一个get访问器和/或一个set访问器。
    3. 属性的     set   访问器用于将值赋给类的私有实例变

    三、问答

    1. 简述属性的定义及其作用?

    答:属性是一种用于访问对象或类的特性的成员,停供了数据的封装性和安全

    性。

    1. 简述索引器的定义及其作用?

    答:索引器是C#的简单组件,使用索引器,可以用索引数组的方式来索引对象,

    索引器提供了与数组访问相类似的类成员访问方式。

    1. 简述索引器和属性之间的区别?

    答:1 属性通过名称标识。索引器通过签名标识。

    2 属性通过简单名称或成员访问来访问。索引器通过元素访问来访问。

    3 属性可以为静态成员或实例成员。索引器必须为实例成员。

    4 属性的get 访问器没有参数。 索引器的 get 访问器具有与索引器相同的形参

    表。属性的 set 访问器包含隐式 value 参数。除了 value 参数外,索引器的 set

    访问器还具有与索引器相同的形参表。

    1. 什么是迭代器,运用迭代器有什么好处。

    答:迭代器是 C# 2.0 中的新功能。迭代器是方法、get 访问器或运算符,它使

    能够在类或结构中支持 foreach 迭代,而不必实现整个 IEnumerable 接口。只

    需提供一个迭代器,即可遍历类中的数据结构,它的优点就是可以是实现容器

    类和自定义集合的循环。

    第八章 委托、事件

    一、选择

    1. 委托可以 (  ) 把递给   (C

    A、对象和对象

    B、 对象和方法

    C、 方法和方法

    二、填空

    1. 委托的关键字是delegate
    2. 委托的参数和返回类型必须和调用函数一致
    3. 委托本身能够拥有一个签名 ,当它持有与它的签名  相匹配的方法的引用后,委托就可以和这个方法一样被调用
    4. 定义事件的关键字是event 

    三、问答

    1. 定义一个多路委托有几个步骤

    答: 定义一个委托类型

    编写具有相同签名方法作为委托

    创建委托对象,将它绑定到需要通过委托调用的第一个方法

    创建另一个委托对象,绑定到下一个需要调用的方法

    可用+,-,+=或-=操作符,合并成一个集成的多播委托

    1. 简述创建事件的过程

    答:定义事件

       给对象预订该事件

       将该事件(当它发生时)通知订户

    1. 什么是多播委托?

    答:多播委托也是一个委托,它可以调用多个方法,只要这些方法的签名与委托的定义相同。多播委托的概念是委托和事件编程之间的门槛,多播委托是通过 对方法的委托进行组合而创建的。组合多个委托,可用+,-,+=或-=操作符。要让一个委托调用多个方法,可以用+或+=操作符为该委托增加方法。要减少 一个多播委托持有的方法,可以使用-或-=操作符。

    第九章 数组

    一、名词解释

    1. 什么是数组?

    答:数组是一种数据结构,它包含若干相同类型的变量

    二、填空题

    1. 实现数组反转的函数是:Reverse.
    2. 对数组排序的函数是:Sort.
    3. System.Array 是所有数组类型的抽象基类型
    4. 能用foreach的都实现了接口IEnumerable
    5. 所有数组都是引用类型

     

    三、选择题

    1. string mystring=”My name is ynn.”;Console.WriteLine(mystring.Substring( 11,3 ))的结果是:(B)

    A。 yn    B. ynn     C.is      D.s y

    1. double num=3.1415926.”;Console.WriteLine(num.ToString(F3))的结果是:(C)

    A。 F3    B. 3.14    C.3.142     D.3.141

    1. double num=3.14;Console.WriteLine(num.ToString(p1))的结果是:(B)

    A。 p1    B. 31.4%    C.31.40%    D.3.14%

    1. DateTime.Now.ToString(“yyyyMMddhhmmss”)(假如今天的日期是2008-12-22 15:34:50)的结果是(A)

    A。20081222153450  B.2008-12-22 15:34:50   C.20081222  D.081222153450

     

    四、简答题

    1. 数组包括哪些种类?

    答:一维、多维、交错。

    1. 二维数组的Length得到的是?

    答:成员个数

    1. 二维数组与交错数组有什么区别?

    答:二维数组的每一行成员数相同,交错数组的每一行成员数有可能不同。

    1. 简述常见的数组声明及赋值的方法

    方法一:

    int[] arr1 = new int[3];

    arr1[0]=1;

    arr1[2] = 2;

    arr1[1] = 3;

    方法二:

    int arr2 = new int[3] { 1, 2, 3 };

    方法三:

    int aar3 = new int[] { 1, 2, 3 };

    1. String和StringBuilder有什么区别

    在.NET中String是不可改变对象,一旦创建了一个String对象并为它赋值,它就不可能再改变,也就是你不可能改变一个字符串的值

    String类型在做字符串的连接操作时,效率是相当低的,并且由于每做一个连接操作,都会在内存中创建一个新的对象,占用了大量的内存空间。这样 就引出StringBuilder对象,StringBuilder对象在做字符串连接操作时是在原来的字符串上进行修改,改善了性能。

    1. 字符串的比较有几种?分别举例说明

    String 类有四种方法:Compare( )、CompareTo( )、CompareOrdinal( )、Equals( )。

    Compare( )方法是CompareTo( )方法的静态版本。只要使用“=”运算符,就能使用Equals( )方法,CompareOrdinal( )方法对两个字符串比较不考本地语言与文件。

    示例:

    int result;

    bool bresult;

    s1=”aaaa”;

    s2=”bbbb”;

    //Compare( )method

    //result值为“0”表示等,小于零表示 s1 < s2,大于零表示 s1 > s2

    result=String.Compare(s1,s2);

    result=s1.CompareTo( s2 );

    result=String.CompareOrdinal(s1,s2);

    bresult=s1.Equals( s2 );

    bresult=String.Equals( s1,s2 );

    1. string s = “abcdeabcdeabcde”;

    string[] sArray = s.Split(‘c’);

    foreach (string i in sArray)

    Console.WriteLine(i.ToString());

    输出的结果是:

    ab

    deab

    deab

    de

    1. 请说明foreach的用法

    foreach 语句为数组或对象集合中的每个元素重复一个嵌入语句组。foreach 语句用于循环访问集合以获取所需信息,但不应用于更改集合内容以避免产生不可预知的副作用。此语句的形式如下:
    foreach (type identifier in expression) statement
    若要循环访问集合,集合必须满足特定的要求。集合类型:
    必须是 interface、class 或 struct。
    必须包括返回类型的名为 GetEnumerator 的实例方法

    1. 请编程实现一个冒泡排序算法?

    答:
    int [] array = new int [*] ;
    int temp = 0 ;
    for (int i = 0 ; i < array.Length – 1 ; i++)
    {
    for (int j = i + 1 ; j < array.Length ; j++)
    {
    if (array[j] < array[i])
    {
    temp = array[i] ;
    array[i] = array[j] ;
    array[j] = temp ;
    }
    }
    }

    1. C#中,string str = null 与 string str =”",请尽量用文字说明区别。
      string str =”"初始化对象分配空间而string str=null初始化对象

    第十章 集合

    一、名词解释

    1. 什么是集合?

    答:NET Framework 提供了用于数据存储和检索的专用类。这些类提供对堆栈、队列、列表和哈希表的支持。大多数集合类实现相同的接口,可继承这些接口来创建适应更为专业的数据存储需要的新集合类

    二、填空题

    1. 所有集合引用的名称空间是:System.Colliections.
    2. stack是出,Queue是出。
    3. Array类的  Clear    方法用于将数组中的一系列元素设置

    三、选择题

    1. 以下哪个是可以变长的数组?(  D  )

    A.Array                      B.string[]

    C.string[N]                  D.ArrayList

    1. 以下哪个是排序的数据列表: (  A  )

    A.SortedList        B.HashTable

    C.ArrayList         D. Heap

    1. 在.NET中,Hashtable在.NET中,Hashtable类所在的命名空间是(  C  )(选择一项)

    A.System.Threadint

    B.System.IO

    C.System.Collections

    D.System

    四、简答题

    1. 集合类具有哪三个特点?

    1)、集合类定义为 System.Collections  System.Collections.Generic 命名空间的一部分。

    2)、大多数集合类都派生自 ICollection、IComparer、IEnumerable、IList、IDictionary 和 IDictionaryEnumerator 接口以及它们的等效泛型接口。

    3)、使用泛型集合类可以提供更高的类型安全性,在某些情况下还可以提供更好的性能,尤其是在存储值类型时,这些优势会体现得更明显。

    1. ArrayList类的Count方法和Capacity方法有何区别?

    Count方法返回ArrayList实例包含的实际元素数,而Capacity方法返回ArrayList可容纳的元素总数。

    1. Heap与stack的差别?

    答:Heap是堆,空间是由手动操作分配和释放的,它的存储区很大的自由存储区. Stack是栈,是由是操作系统自动分配和释放的,栈上的空间是有限的。程序在编译期间变量和函数分配内存都是在栈上进行的,且在运行时函数调用时的参数的传递也是在栈上进行的。

    4、集合包括哪些种类?常用的集合类有哪些?

    ArrayList使用大小可按需动态增加的数组实现 IList 接口。

    Hashtable表示键/值对的集合,这些键/值对根据键的哈希代码进行组织。

    SortedList表示键/值对的集合,这些键值对按键排序并可按照键和索引访问。

    BitArray管理位值的压缩数组,该值表示为布尔值,其中 true 表示位是打开的 (1),false 表示位是关闭的 (0)。

    Stack表示对象的简单的后进先出非泛型集合。

    Queue表示对象的先进先出集合。

    5.  数组和数组列表的区别是什么?

    数组必须在实例化是确定数组的长度,而数组列表不需要一开始确定长度,根据添加的元素的数量动态增长。

    ArrayList只有一维,而数组可以是多维。

    数组的元素一旦确定后不能添加和删除,而数组列表可以随时添加和删除元素。

    6     HashTable,SortList,NameValueCollection之间的异同?

    这三种集合类均是表示键值对的集合,都是属于字典。

    HashTable里面的元素根据键的哈希代码的顺序进行排序

    SortedList里面的元素根据键的值进行排序,并和按照键和索引访问。

    NameValueCollection与HashTable很相似,区别是HashTable不允许有重复的键,而NameValueCollection允许有重复的键

    7     Stack,Queue之间的区别是什么?

    Stack类用于实现后入先出的数据结构,它存储数据的形式是最后插入的对象出现在堆栈的最顶端。

    Queue类用于实现先入先出的数据结构,它存储数据的形式是最先插入的对象最先获取。

    8     简述ArrayList的主要方法,以及这些方法的含义。

    ArrayList:    Add()   添加单个元素

    AddRange()  添加一个数组列表

    GetRange()  从数组列表中取出一部分

    Remove()    移除单个元素

    RemoveAt()  移除指定索引位置的元素

    Clear()     清空数组列表中的所有元素

    第十一章 反射

    一、名词解释

    1. 什么是泛型?

    答:所谓泛型,即通过参数化类型来实现在同一份代码上操作多种数据类型。泛型编程是一种编程范式,它利用“参数化类型”将类型抽象化。从而实现更灵活的方式复用

    1. 什么是反射?

    反射就是动态发现类型信息的能力。它帮助程序设计人员在程序运行时利用一些信息去动态地使用类型,这些信息在设计时是未知的,这种能力类型于后期绑定。反射还支持的更高级的行为,能在运行时动态创建新类型,并且对这些新类型的操作进行调用。

    二、填空题

    1. 在.Net中所有可序列化的类都被标记为_serializable__
    2. 泛型的符号是:  <>
    3. 程序集分为共享程序集私有程序集
    4. 反射所需要的名称空间是:System.Reflection.

    三、简答题

    1. 泛型约束where T :class的意思?

    答:规定T必须是一个引用类,包括任何类,委托或接口。

    1. 泛型约束where T :new()的意思?

    答:规定T必须实现一个默认的构造器new()。如果同一个类型上有多个约束new()约束必须最后指定

    1. .NET框架2.0中常用的几个集合类型?

    答:Dictionary<>类、List<>类、Queue<>类、Stack<>类

    1. 使用泛型的优点是?

    通过泛型可以定义类型安全的数据结构,而无需使用具体实际的数据类型,着能够显著提高性能并得到高质量的代码。

    泛型通过把类型参数化来达到代码重用的目标,这一特性可以应用在类、结构、接口、委托、方法的设计之中。泛型除了可以大幅提高代码复用性。

    提供编译期间的类型检查,减少不必要的显式类型转换,减少不必要的装箱操作,从而提高应用程序的运行效率

    1. 什么是System.Reflection名称空间?

    Reflection名称空间包含的类的的接口提供对所加载的类型、方法和字段的查看管理,能够动态创建和调用类型。

    1. 什么是程序集?

    程序集是.NET框架应用程序的生成块,它构成了部署、版本控制、重复使用的基本单元,它是为协同工作而生成的类型和资源的集合。

    第十二章 异常处理

    一、填空题

    1. 异常是 一定  会发生的。
    2. 异常类名称尽量使用Exception作为结尾
    3. Throw语可用来抛出  系统异常  或   用户自定义异常
    4. 用户自定义异常类需要从   Exception      类继承.
    5. 在C#异常处理中,一个try语句块可以有     多         个catch块。

    二、选择题

    1. 下列关于C#的异常处理的说发法,错误的是(   A  )。

    A.try块必须跟catch块组合使用,不能单独使用

    B.一个try块可以跟随多个catch块

    C.使用throw语句既可引发系统异常,也可以引发由开发人员创建的自定义异常

    D.在try … catch …..finally块中,即便开发人员编写强制逻辑代码,也不能跳出finally块的执行

     

    三、简答题

    1. 可以创建自已的异常吗?

    可以,要创建自定义的异常类型,编写派生自Exception的类即可。

    1. 什么是异常处理?为什么需要异常处理?

    一个良好且强大的程序的标志是为意外情况作好准备并在出现意外情况时能够恢复。在程序编译或执行的任何时候都有可能发生错误码。执行有问题的代码时,会“产生异常“,导致应用程序的崩溃,所以必须在程序中处理可能产生的各种异常。只有这样,才能保证开发出健壮的应用程序。

    1. net的错误处理机制是什么

    .net错误处理机制采用try->catch->finally结构,发生错误时,层层上抛,直到找到匹配的Catch为止。

    1. try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后?

    答:会执行,在return前执行

    1. 以下代码段中能否编译通过?请给出理由。

    try

                {

                }

                catch (IOException e3)

                {

             }

    不能,IOException不在System名称空间,而在System.IO名称空间

    第十三章 流

    一、名词解释

    1. 什么是流?

    它是通过缓冲机制将数据从生产者(如键盘、磁盘文)的这一过程的抽象。件、内存或其他设备)传送到接受该数据的消费者(如屏幕、文件或者内存等

    二、填空题

    1. IO代表的意思是:inputoutput
    2. FileStream 中的Read( )Write( )方法分别是用来读和写文件流的
    3. C#中IO操作的最小单位是:字节
    4. 文件操作必须声明_____System.IO__命名空间。
    5. IO操作盘符的类是:DriverInfo。

     

    三、选择题

    1. 用户自定义异常类需要从以下哪个类继承:(  A  )

    A.Exception                             B.CustomException

    C.ApplicationException                    D .BaseException

    1. 下列关于C#的异常处理的说发法,错误的是(   A  )。

    A.try块必须跟catch块组合使用,不能单独使用

    B.一个try块可以跟随多个catch块

    C.使用throw语句既可引发系统异常,也可以引发由开发人员创建的自定义异常

    D.在try … catch …..finally块中,即便开发人员编写强制逻辑代码,也不能跳出finally块的执行

     

    四、简答题

    1. Stream派生的具体字节数据流类包括

    答:FileStream  为文件I/O设计的字节数据流

    MemoryStream 使用内存来存储的字节数据流

    1. System.IO命名空间提供了哪几个类分别起什么作用?

    答:

    a)         File类-静态类,可以测试一个文件是否存在,以及拷贝文件、删除、移动、打开文件和创建文件流

    b)        FileInfo类-实例类,提供一个具体文件的有关信息,包含了相应的实例方法,用来执行文件的拷贝、移动、删除等有关信息

    c)         Directory类-静态类,提供了用来判断目录是否存在,以及创建目录等与目录操作有关的方法。

    d)        DirectoryInfo类-提供了操作具体目录的实例方法,包括重命名,获得目录内文件列表等。

    e)         Path类-用于分析和构造路径字符串的实用类。

    第十四章 文件

    一、填空题

    1. File类的所有方法都是  静态的,因此要求将所有文件的路径传递到所有方法调用。
    2. File类是一个密封类,其他类不可以从该类继承。
    3. File类的   Copy()方法可用于将文件从一个位置复制到另一个位置。
    4. File类的   Move()方法可用于移动一个文件。
    5. File类的    Delete()方法可用于删除文件。
    6. Directory类的    CreateDirectory()方法可用于创建目录。
    7. Directory类的    Move()方法可用于移动目录。
    8. Directory类的    Delete()方法可用于删除目录。
    9. DirectoryInfo和FileInfo类都继承自   FileSystemInfo类。
    10. .File类的Copy()方法的一种重载方法接受第三个参数,该参数是一个  bool    值 。
    11. 使用代码行“FileStream fs=File.Create(@”C:\ABC.TXT”);”创建文件时,如果文件C:\ABC.TXT已经存在,则   文件创建成功,并覆盖原来的文件

    第十七章 Xml的处理一

    一、名词解释

    1. 什么是XML?

    答:XML即可扩展标记语言。eXtensible Markup Language.标记是指计算机所能理解的信息符号,通过此种标记,计算机之间可以处理包含各种信息的文章等。如何定义这些标记,即可以选择国际通用的 标记语言,比如HTML,也可以使用象XML这样由相关人士自由决定的标记语言,这就是语言的可扩展性。XML是从SGML中简化修改出来的。它主要用到 的有XML、XSL和XPath等。

    二、填空题

    1. 在XML中有    一       个根元素?
    2. XML注释用   <!– –>      表示
    3. XML的显示可以用   CSS与XSL
    4. XML中属性值用  双引号或单引号 分隔.

     

    三、选择题

    1. 下面关于XML的描述错误的是(D)。

    a)XML提供一种描述结构化数据的方法;

    b)XML 是一种简单、与平台无关并被广泛采用的标准;

    c)XML文档可承载各种信息;

    d)XML只是为了生成结构化文档;

     

    四、简答题

    1. XML文件写入的步骤是什么?

    答:

    引用System.Xml

    定义XmlTextwrite,根据文件路径及格式,实例化XmlTextWrite;设置Formatting与Indentation。设置开 始书写WriteStartDocument,若有节点使用WriteStartElement与WriteEndElement书写,在 WriteStartElement中参数输入节点名。若有值则用WriteString书写,方法参数为值。如有属性则用 WriteStartAttribute与WriteEndAttribute书写,WriteStartAttribute方法参数为属性名,中间加入 WriteString,方法参数为属性值,

    最后用xtw.WriteEndDocument();xtw.Close();结束

    2.XML 与 HTML 的主要区别

    1)        XML是区分大小写字母的,HTML不区分。

    2)        在HTML中,如果上下文清楚地显示出段落或者列表键在何处结尾,那么你可以省略&lt;/p&gt;或者&lt;/li&gt;之类的结束

    3)        标记。在XML中,绝对不能省略掉结束标记。

    4)        在XML中,拥有单个标记而没有匹配的结束标记的元素必须用一个 / 字符作为结尾。这样分析器就知道不用

    5)        查找结束标记了。

    6)        在XML中,属性值必须分装在引号中。在HTML中,引号是可用可不用的。

    7)        在HTML中,可以拥有不带值的属性名。在XML中,所有的属性都必须带有相应的值。

    第十八章 Xml的处理二

    一、名词解释

    1. 什么是DTD?

    答:DTD是一种保证XML文档格式正确的有效方法,可以比较XML文档和DTD文件来看文档是否符合规范,元素和标签使用是否正确。

    二、填空题

    1. DOM英文全称是  document object model   ,中文全称是  文档对象模型  

     

     

    三、选择题

    1. 下面关于XML的描述错误的是(B)。

    a) 每个XML文档必须有且只有一个根元素。

    b) 根元素的起始标记可以不放在所有其他元素的起始标记之前。

    c) 根元素的结束标记要放在所有其他元素的结束标记之后。

    d) 根元素是一个完全包括文档中其他所有元素的元素。

     

    四、简答题

    1. XmlReader 和 XmlWriter类可以实例化吗?

    答:不行,2个都是抽象类,无法实例化。

    1. XmlReader与XmlWriter有什么区别?

    答:前者主要是对XML进行读取等操作,后者主要是对XML进行写入等操作。

    1. 是什么SAX?

    答:SAX的全称是Simple APIs for XML,也即XML简单应用程序接口。它是XML_DEV邮件列表中的成员根据应用的需求自发地定义的一套对XML文档进行操作的接口规范。

    1. XmlWriter中写入元素节点和写入属性用什么?

    答:WriteElementString、WriteStartElement 和 WriteNode 方法可以用于编写元素节点,WriteAttributeString、WriteStartAttribute 和 WriteAttributes 方法专门为创建属性而设计。

    1. XML文件写入的步骤是什么?

    答:优点:SAX模型最大的优点是内存消耗小,因为整个文档无需一次加载到内存中,这使SAX解析器可以解析大于系统内存的文档。另外,你无需像在 DOM中那样为所有节点创建对象。最后,SAX“推”模型可用于广播环境,能够同时注册多个ContentHandler,并行接收事件,而不是在一个管 道中一个接一个地进行处理。

    缺点:SAX的缺点是你必须实现多个事件处理程序以便能够处理所有到来的事件,同时你还必须在应用程序代码中维护这个事件状态,因为SAX解析器不 能交流元信息,如DOM的父/子支持,所以你必须跟踪解析器处在文档层次的哪个位置。如此一来,你的文档越复杂,你的应用逻辑就越复杂。虽然没有必要一次 将整个文档加载到内存中,但SAX解析器仍然需要解析整个文档,这点和DOM一样。

    1. SAX和DOM的区别是?
    • SAX是顺序的,层次化的分析XML文档,着眼于当前的事件连续的处理,不是全部文档都读入内存
    • DOM的做法正是将XML文档元素全部读入内存,生成一棵包含全部内容的树,以便全局的控制各个节点元素。

    第十九章 ADO.NET(一)

    一、名词解释

    1.  什么是ADO.NET?

    ADO.NET 是 Microsoft.Net 框架中包含的数据访问组件。

    1. 什么是OLE DB?

    OLE DB(Object Linking and Embedding for Database 对象链接与嵌入数据库)提供统一的数据访问接口

    1. 什么是ADO?

    ADO(ActiveX Data Object,ActiveX 数据对象)是 Microsoft 开发的一种数据访问方法,通过 OLE DB 提供程序与数据库连接

    1. 什么是ODBC?

    ODBC(Open Database Connectivity 开放式数据库连接)是一组可用于连接各种关系数据库的函数集

    二、填空题

    1. SqlCommand对象中_CommandType____用来指定需要执行的命令类型,__CommandText____用来指定命令类型相关的信息。
    2. 在C#中为了避免忘记使用connection的close,我们可以使用using____来帮我们自动释放连接资源。
    3. SqlConnection,SqlCommand,SqlDataReader是在System.Data.SqlClient命名空间下..
    4. Sqlconnection打开数据库连接的命令是: open();关闭数据库连接的命令是:close().
    5. DataReader  不能  向后访问,只能向前访问 。
    6. ADO.NET 的基本组件包括: DataSet  和  .NET 框架数据提供程序

    三、选择题

    1. 在ADO.NET中,对于Command对象的ExecuteNonQuery()方法和ExecuteReader()方法,下面叙述错误的是(C)。

    a)insert、update、delete等操作的Sql语句主要用ExecuteNonQuery()方法来执行;

    b)ExecuteNonQuery()方法返回执行Sql语句所影响的行数。

    c)Select操作的Sql语句只能由ExecuteReader()方法来执行;

    d)ExecuteReader()方法返回一个DataReder对象;

    1. 您的公司有一个DB Server,名为AllWin,其上装了MS SQLSERVER 2000。现在需要您写一个数据库连接字符串,用以连接AllWin上SQL SERVER中的一个名为PubBase实例的Test库。请问,应该选择下面哪一个字符串?(  B  )

    A. “Server=AllWin;Data Source=PubBase;Initial Catalog=Test;Integrated Security=SSPI”

    B. “Server= AllWin;Data Source=PubBase;Database=Test;Integrated Security= SSPI”

    C. “Data Source= AllWin \PubBase;Initial Category=PubBase;Integrated Security= SSPI”

    D. “Data Source= AllWin \ PubBase;Database=Test;Integrated Security= SSPI”

     

     

    四、简答题

    1. DataReader和DataSet的异同

    DataReader和DataSet最大的区别在于,DataReader使用时始终占用SqlConnection,在线操作数据库..任何对 SqlConnection的操作都会引发DataReader的异常..因为DataReader每次只在内存中加载一条数据,所以占用的内存是很小 的..因为DataReader的特殊性和高性能.所以DataReader是只进的..你读了第一条后就不能再去读取第一条了..

    DataSet则是将数据一次性加载在内存中.抛弃数据库连接..读取完毕即放弃数据库连接..因为DataSet将数据全部加载在内存中.所以比较消耗内存…但是确比DataReader要灵活..可以动态的添加行,列,数据.对数据库进行回传更新操作…

    1. ADO。NET相对于ADO等主要有什么改进?

    a)         ado.net不依赖于ole db提供程序,而是使用.net托管提供的程序,

    b)        不使用com

    c)         不在支持动态游标和服务器端游

    d)        可以断开connection而保留当前数据集可用

    e)         强类型转换

    f)   xml支持异同

    1. 简述ADO.NET中常用五大对象是什么及其作用?

    答:connection 连接对象
    command 命令对象,指示要执行的命令和存储过程!
    datareader是一个向前的只读的数据流。
    dataadapter是功能强大的适陪器,支持增删改查的功能
    dataset是一个数据级对象,相当与内存中的一张表或多张表

    1. SqlCommand的ExecuteNonQuery(),ExecuteScalar(),ExecuteReader()分别返回什么?

    答:ExecuteNonQuery()执行不返回结果,返回的为一个执行影响行数int型,ExecuteScalar()返回第一行第一个字段的值,ExecuteReader()返回一个DataReader对象

    5.Command的CommandType什么作用?

    答:指定需要执行命令的类型,通常为StoredProcedure:命令类型为存储过程,Text:命令类型为SQL文本命令

    6     如何使用UDL文件方式获取连接sqlserver数据库字符串?

    答:新建一个txt文件,将文件后缀名改为.udl,打开UDL文件,提供程序microsoft oledb provide for sqlserver ,点下一步,服务器中输入.,选 择指定的用户名称和密码,输入用户名及密码(本机可使用WINODWS认证),选择数据库,测试通过。退出。将文件用记事本打开 ,复制; Everything after this line is an OLE DB initstring下面的代码即连接数据库字符串。

    8     连接操作数据库基本步骤是什么?

    答:首先using System.Data.SqlClient;实例化SqlConnection对象,将SqlConnection对象的 ConnectionString设置连接数据库字符串,实例化SqlCommand对象,设置SqlCommand的CommandText属性,一般 为一段sql代码,Connection属性指定为先建立的SqlConnection对象。执行Command返回ExecuteReader()返回 一个DataReader或执行ExecuteNonQuery()无返回

    第二十章 ADO.NET(二)

    一、名词解释

    1. 什么是DataSet?

    DataSet相当于数据在内存中的镜像,可以用来描述数据库库表(包括数据信息和表格式信息)和库表之间的关系。

    DataSet由两部分组成:Tables和Relations。

    二、填空题

    1. 在SqlDataAdapter中填充数据集用__Fill___方法。
    2. 在数据库表中三种关系,分别为______________________________
    3. SqlCommand对象中_CommandType____用来指定需要执行的命令类型,__CommandText____用来指定命令类型相关的信息。
    4. SqlDataAdapter有预先配置好的____个Command实例。
    5. DataReader  不能  向后访问,只能向前访问 。
    6. DataSet由两部分组成:TablesRelations
    7. DataSet中可以含有   一个或多个 张表
    8. DataSet、DataTable在    System.Data   命名空间下。
    9. DataAdapter是与 DataSet 一起使用的对象,它在数据库和数据集之间起桥梁的作用。

    三、选择题

    1. 在ADO.NET中,对于Command对象的ExecuteNonQuery()方法和ExecuteReader()方法,下面叙述错误的是(C)。

    a)insert、update、delete等操作的Sql语句主要用ExecuteNonQuery()方法来执行;

    b)ExecuteNonQuery()方法返回执行Sql语句所影响的行数。

    c)Select操作的Sql语句只能由ExecuteReader()方法来执行;

    d)ExecuteReader()方法返回一个DataReder对象;

     

    1. 以下关于C#中DataSet的说法错误的是( CD  )。
      1. 1个DataSet中可以多张有表
      2. 1个DataSet中可以有多个关系
      3. 1个DataSet只能有1张表
      4. 1个DataSet只能有1个关系
    2. 下面有关DataTable的说法正确的是( BD   )。
      1. DataTable中的rows表示列
      2. column表示列
      3. 在设计DataTable时是先加行再加列
      4. 在设计DataTable时是先加列再加行
    3. 下面说法正确的是(  BC  )
      1. DataReader可以实例化
      2. File不能实例化
      3. DataSet有构造函数重载
      4. DataRow可以实例化
    4. 下列说法正确的是(  B  )。
      1. 在StreamWrite中调用Write方法即可写入内容不需要再调用其他方法
      2. ADO.NET有断开模式和连接模式
      3. DataReader可以先前或向后操作
      4. D.若要使用Command的Fill填充到DataSet必须先调用Connection的Open方法

    四、简答题

    1. DataReader和DataSet的异同

    DataReader和DataSet最大的区别在于,DataReader使用时始终占用SqlConnection,在线操作数据库..任何对 SqlConnection的操作都会引发DataReader的异常..因为DataReader每次只在内存中加载一条数据,所以占用的内存是很小 的..因为DataReader的特殊性和高性能.所以DataReader是只进的..你读了第一条后就不能再去读取第一条了..

    DataSet则是将数据一次性加载在内存中.抛弃数据库连接..读取完毕即放弃数据库连接..因为DataSet将数据全部加载在内存中.所以比较消耗内存…但是确比DataReader要灵活..可以动态的添加行,列,数据.对数据库进行回传更新操作…

    1. DataAdapter中预先配置好的Command实例是什么?

    答:SelectCommand,InsertCommand,DeleteCommand,UpdateCommand,分别是提供对数据库数据的查找(选择),插入,删除,修改

    1. DataAdapter 中的Fill ()方法有什么作用?

    答:可以将数据库中的表(或连表)填充到dataset中的table中

    1. DataView的Sort属性有什么作用?

    答:可以使用Sort指定单个或多个列排序顺序并包含 ASC(升序)和 DESC(降序)参数

    1. 连接数据库后如何将某一张表的内容存到DataTable中?

    答:建立连接后,实例化SqlDataAdapter ,将SqlDataAdapter 的SelectCommand的Connection设置为连接对象,CommandText设置为想要查询表的SQL语句。定义DataSet,使用 SqlDataAdapter的Fill()方法将数据库中的表存在一个DataSet,定义DataTable,使用DataSet的Tables方法 获取表即可

    6. DataView和DataTable的区别是?

    DataView 使您能够创建 DataTable 中所存储的数据的不同视图,这种功能通常用于数据绑定应用程序。使用 DataView,您可以公开表中具有不同排序顺序的数据,并且可以按行状态或基于筛选器表达式来筛选数据。

    DataTable描述的是一个表信息,它包换Columns集合和Rows集合。

    第二十一章 ADO.NET(三)

    一、名词解释

    1. 什么是事务?

    事务提供了一种将T-SQL语句分组的方法,从而使它们能够被当成一个单元来处理:组中所有语句或都执行,或都不执行。

    二、填空题

    1. 存储过程中输入参数用   input  ,输出参数用   output 
    2. SqlCommand对象中_CommandType____设置为  StoredProcedure 使用存储过程
    3. 事务的提交方法为____Commit______,回滚方法为___RollBack___。
    4. 事务的4个特性是:原子性一致性 隔离性 持久性

    三、选择题

    1. 在ADO.NET中执行一个存储过程时,如果要设置输出参数则必须同时设置参数的方向和(B ),必要时还要设置参数尺寸。

    a)大小;             b)上限;              c)初始值;            d)类型;

    1. 一下关于存储过程的说法正确的是(  D  )
      1. 存储过程可以有参数,可以有返回值,返回值就是输出参数。
      2. SqlCommand对象可以设置存储过程的相关信息。
      3. connection.open,sql,1,1 为调用无参,无返回值存储过程。
      4. 存储过程执行效率比sql语句高的主要原因是预编译。

    四、简答题

    1. 存储过程的优点?

    a)             答:存储过程因为SQL语句已经预编绎过了,因此运行的速度比较快。

    b)            存储过程可以接受参数、输出参数、返回单个或多个结果集以及返回值。可以向程序返回错误原因。

    c)             存储过程运行比较稳定,不会有太多的错误。只要一次成功,以后都会按这个程序运行。

    d)            存储过程主要是在服务器上运行,减少对客户机的压力。

    e)             存储过程可以包含程序流、逻辑以及对数据库的查询。同时可以实体封装和隐藏了数据逻辑。

    f)             存储过程可以在单个存储过程中执行一系列     SQL     语句。

    g)     存储过程可以从自己的存储过程内引用其它存储过程,这可以简化一系列复杂语句。

    1. 使用存储过程的步骤是?

    1)   构造与Sql服务器连接对象

    SqlConnection MyCon = new SqlConnection()

    2)   构造SqlCommand对象

    SqlCommand MyCmd = new SqlCommand()

    3)   指定SqlCommand对象调用的存储过程

    MyCmd.CommandText = “ProcedureName”

    4)   声明SqlCommand对象的命令类型为存储过程

    MyCmd.CommandType = CommandType.StoredProcedure

    5)   构造参数对象

    SqlParameter MyParam = new SqlParameter(“@ParamName”,类型,宽度);

    6)   赋值给参数对象

    MyParam.Value = Value

    7)   将参数添加到SqlCommand对象

    MyCmd.Parameters.Add(MyParam)

    8)   执行SqlCommand

    MyCmd.ExecuteNonQuery()

    9)   关闭Sql连接对象 MyCon.Close()

     

    1. 事务处理的步骤是?

    a)  创建SqlTransaction 对象,使用BeginTransaction() 方法。

    b)  给SqlCommand对象的Transaction 属性赋值。

    c)  使用commit()方法提交事务。

    d)  使用Rollback() 方法回滚事务。

    第二十二章 ADO.NET(四)

    一、名词解释

    二、填空题

    1. 在ADO.NET 编程中,  不能   使用一个DataAdapter 对象向多个DataTable 填充数据。
    2. myTable.Rows[0][2]返回myTable的第  一    行第   三     列数据。
    3. 使用数据适配器的  update   方法能够更新数据。
    4. myDataSet.Tables.Add()语句执行后,myDataSet中增加的表的名称是  Talbe1.

     

    三、选择题

    1. DataAdapter 对象的Update 查询语句中, 使用下列哪种Where 子句可以保证本行的

    4gA’W0Od
    oIT农庄,IT认证,题库,微软认证,ATA认证更新不会覆盖其他用户的更改。ACD

    1I o#`$U0t X


    X_www.itnz.cnA. 包含数据源所有的列

    B. 只包含主键列

    C. 包含主键列和一个时戳列
    “Au3I[1]KC­@$Z9lIT农庄,IT认证,题库,微软认证,ATA认证D. 包含主键列和已修改列

    1. DataAdapter 对象的DeleteCommand 的属性值为null,将造成:C

    A. 程序编译错误
    B. DataAdapter 在处理DataSet 中被删除的行时,这些行将被跳过不处理
    K?0vJ;oVBzIT农庄C. DataAdapter 在处理DataSet 中被删除的行时,将引发异常
    bY ak


    _nLD. DataAdapter 在处理DataSet 中被删除的行时,将出现对话框询问用户如何处理该
    \”s)G(b J’gS


    Q/sIT农庄行

     

    1. 为了提高性能,在使用DataAdapter 填充DataSet 前,可以将_A____属性值设为false.

    A. DataSet 对象的EnforceConstraints
    8o’hT\Z.xA
    TIT农庄,IT认证,题库,微软认证,ATA认证B. DataSet 对象的CaseSensitive

    C. DataAdapter 对象的AcceptChangesDuringFill
    ],_,ObG+CIT农庄,IT认证,题库,微软认证,ATA认证D. DataAdapter 对象的MissingSchemaAction

    1. DataAdapter 对象使用与__ C ____属性关联的 Command 对象将DataSet 修改的数据保存入数据源。

    J1f0gc


    CIT农庄,IT认证,题库,微软认证,ATA认证A. SelectCommand    B. InsertCommand    C. UpdateCommand


    O{?4o
    TIT农庄,IT认证,题库,微软认证,ATA认证D. DeleteCommand
    ;n
    C6uAp[IT农庄,IT认证,题库,微软认证,ATA认证

    1. 目前在ADO.NET 中可以使用与下列哪些数据源相关的DataAdapter?ABC

    d6e{0P‑E­tIT农庄,IT认证,题库,微软认证,ATA认证A. SQL Server .NET 数据源    B. OLE DB .NET 数据源

    C. XML 文件                  Z+Q7`Ii6VV        RIT农庄D. ODBC .NET 数据源

    1.  Dataset1 为一数据集对象,语句

     


    gYz#U


    lm.L;Iakr7p
    kIT农庄Dataset1.ReadXml("F:/Dataset1.XML",XmlReadMode.ReadSchema);!WR2L‑S0?]www.itnz.cn的作用是:A

    A. 若Dataset1 已经包含架构,则将所有由XML 文件内部架构定义的新表加入Dataset1,然后向Dataset1 加载数据;
    B. 向Dataset1 加载数据;忽略所有XML 文件内部架构,并丢弃所有与Dataset1 现有架构不匹配的数据。
    H(j­u ib
    s4Iwww.itnz.cnC. 忽略所有XML 文件内部架构而根据XML 数据推断出新的架构。添加到Dataset1;然后向Dataset1 加载数据。
    L4H3v,G
    F[1]yd*`院校IT认证教育交流第一平台D. 从 XML 文件读取数据集数据修改信息,将其合并到Dataset1 中。

    1. DataView 对象的特性有:AD

    A. DataView 只能访问单个 DataTable 表

    B. DataView 可以作为连接两个相关表的手段

    C. DataView 不能进行排序

    D. DataView 可以根据记录的版本、状态进行筛选

    8.  DataSet 对象ds 中,数据表对象Customers 的表名为”Customers”,其表结构如下:
    C,t$[9|LuIT农庄,IT认证,题库,微软认证,ATA认证CustomerID int 0
    v{+W^Yq;g
    @1UIT农庄CompanyName string 1

    Address string 2

    City string 3
    bw#r7II5mT/R该表有300 条记录,其中有一些刚刚被标记为删除。我们希望从表中查找所有已经标记为删除的、来自London 的客户信息,并将结果以City 列递减排序放入一个DataRow 数._:Cw8u0PH院校IT认证教育交流第一平台组中。则执行下列___ B ___语句可以完成此目标。


    B'?b
    H


    ^


    z        nIT农庄,IT认证,题库,微软认证,ATA认证A.DataRow[] selRows = Customers.Select(“City = ‘London’”, “City DESC”,a,MY‑j
    c)i
    AN;~IT农庄,IT认证,题库,微软认证,ATA认证DataRowState.Deleted);

    B.DataRow[] selRows = Customers.Select(“City = ‘London’”, “City DESC”,DataViewRowState.Deleted);
    *yvx4l$Ey


    Tq
    E院校IT认证教育交流第一平台C.DataRow[] selRows = Customers.Select(“City = ‘London’”, “City ASC”,DataRowState.Deleted);
    bW:y7q;O;cIT农庄,IT认证,题库,微软认证,ATA认证D.DataRow[] selRows = Customers.Select(“City = ‘London’”, “City ASC”,0r4w J


    C:{IT农庄,IT认证,题库,微软认证,ATA认证DataViewRowState.Deleted);


    n D,G”K.y;L3lwww.itnz.cn

    9. DataSet 对象ds 中,数据表对象Customers 的表名为”Customers”,其表结构如下:

    列名 类型 列序号院校IT认证教育交流第一平台.\ k?‑DS%W
    CustomerID int 0

    CompanyName string 1
    ‑Q4X,?n2Ipn-U-Fh院校IT认证教育交流第一平台Address string 2
    *[(r[1]w[
    nLK院校IT认证教育交流第一平台City string 3

    则下列向该表添加一行新数据的语句是否正确?BI
    `S
    d-h,MJ&A{@IT农庄,IT认证,题库,微软认证,ATA认证object[] row = { “ATA”,”A8″,”Beijing”,1};
    T$LQ$lfl‑EzxU
    j院校IT认证教育交流第一平台ds.Tables["Customers"].Rows.Add(row);
    A. 正确    B. 错误

     

    10. 数据集对象dsNorthwind 包含两个表,表名分别为”Customers”和”Orders”。执行下列
    +Q/Y;G
    `:f’A [hIT农庄语句:

     (q


    EzVq9[IT农庄 dsNorthwind.Relations.Add(5Tg,V2n,q)B3JV"FK_CustomersOrders",{+NEtkdsNorthwind.Tables["Customers"].Columns["CustomerID"],2fvVQ JIT农庄dsNorthwind.Tables["Orders"].Columns["CustomerID"],false);
    该语句运行结果有______ A ______。
    A. 为dsNorthwind 创建了表”Customers”和”Orders”之间的导航关系

    B. 为表”Customers”创建了一个唯一性约束
    C. 为表”Orders”创建了一个唯一性约束
    [1]Rlt c2o”y
    Buwww.itnz.cnD. 为表”Customers”创建了一个外键约束,其父表为”Orders”
    ;h&d)p+e­R)g3SeE. 为表”Orders”创建了一个外键约束,其父表为”Customers”

    11. 数据集ds 中两数据表(父表:Customer;子表:CartItems)之间有如图外键约束。父表Customers 中有一行数据的CustomerID=100,子表CartItems 中有20 行数据的CustomerID=100。若从父表中删除该行,则:D 9W7N’r{        [Zt.dt3D院校IT认证教育交流第一平台农

    A. 子表不发生任何变化
    T8n rR+z+db院校IT认证教育交流第一平台B. 子表中20 个相关行的CustomerID 列的值变为DBNull

    C. 子表中20 个相关行被删除
    D. 引发Exception

     

    12.  已知ds 为数据集对象。以下语句的作用是_A____。

    ds.Tables["roduct"].Constraints.Add(new UniqueConstraint(“UC_ProductName”,new string[]{“Name”,”Class”},true));
    )P c*?\+|aI6bA. 为表”roduct”添加一个由列”Name”,”Class”组合成的主键约束
    4Lt X`4t0p”hIT农庄,IT认证,题库,微软认证,ATA认证B. 为表”Product”添加一个由列”Name”,”Class”组合成的唯一性约束
    C. 为数据集ds 添加一个名为”Product”的数据表,并添加两个列,列名分别为”Name”
    ‑o’['Y
    D,l$q院校IT认证教育交流第一平台和"Class"
    'q
    @
    bG


    |9h?‑l"~ x"VIT农庄D. 为数据集ds 添加一个名为"Product"的数据表,并添加一个名为"UC_ProductName"
    GI        }0I%qIT农庄的数据列

     

    13.  下列哪些方法可以在DataSet 对象ds 中添加一个名为“Customers”的DataTable 对象?BCD
    +P;J$H;m*GGIT农庄A. DataTable dt_customers = new DataTable();

    B. DataTable dt_customers = new DataTable("Customers");
    :B3y2c.{s院校IT认证教育交流第一平台ds.Tables.Add(dt_customers);

    C. ds.Tables.Add("Customers");

    D. ds.Tables.Add(new DataTable("Customers");

    y0sW7z mIT农庄,IT认证,题库,微软认证,ATA认证

     

     

     

    14.  已知ds1、ds2 分别代表两个不同的DataSet 对象。其中ds1 已包含名为“Customer”的DataTable 对象,且该DataTable 对象被变量dt_Customer 引用。已知dt_Customer1Ne+rmg5n w7byIT农庄表中有100 条记录,则执行下列语句后,新的数据表new_dt_Customer 中包含___ B ___0y8fz


    EJIT农庄,IT认证,题库,微软认证,ATA认证条记录。
    {2G2^‑}uU9JDataTable new_dt_Customer = dt_Customer.Copy();I

    A. 0    B. 100    C. 200    *G+l4HP2_,?


    KD. 300

     

    15.  下列哪些选项可以作为DataSet 的数据源?ABCD
    A. SQL Server 2000 数据库中的视图    ipVt WW
    t.v[m院校IT认证教育交流第一平台B. Oracle 数据库中的表
    C. XML 文件                          D. Excel 制表文件
    |        T


    ~(SLT[1]lwww.itnz.cn

    16.  cmd 是一个SqlCommand 类型的对象,并已正确连接到数据库MyDB。为了在遍历完SqlDataReader 对象的所有数据行后立即自动释放cmd 使用的连接对象,应采用下列哪种方法调用ExecuteReader 方法?D
    `9]Y        y,w{‑pA. SqlDataReader dr = cmd.ExecuteReader( );
    B. SqlDataReader dr = cmd.ExecuteReader(true);
    R E;H-?
    \IT农庄,IT认证,题库,微软认证,ATA认证C. SqlDataReader dr = cmd.ExecuteReader(0);

    D. SqlDataReader dr= cmd.ExecuteReader(CommandBehavior.CloseConnection);
    4L1D6ct&^
    S[1]V0Pwww.itnz.cn

    17. 某Command 对象cmd 将被用来执行以下SQL 语句,以向数据源中插入新记录:
    *Y1Q‑m6Ft,M’\
    SIT农庄,IT认证,题库,微软认证,ATA认证insert into Customers values(1000,“tom”)IT农庄AB 5p{;f `­v


    u5YP N
    请问,语句cmd.ExecuteNonQuery( );的返回值可能为


    [0I#J)OD
    e
    {6i8e%\;i


    {A. 0    fTF+r)mcS^$PIT农庄,IT认证,题库,微软认证,ATA认证B. 1    g[1]v!seaJ院校IT认证教育交流第一平台C. 1000    D. “tom”

    18. 为创建在SQL Server 2000 中执行Select 语句的Command 对象,可先建立到SQL Server2000 数据库的连接,然后使用连接对象的____ C ___方法创建SqlCommand 对象。
    3tZj)` }(T0y Wwww.itnz.cnA. Open    *t` ?[1]O&})E%T)tC$yB. OpenSQL    C. CreateCommand    D. CreateSQL

     

    19. 设计ADO.NET 应用程序时,在下列哪些情况下,使用Command 对象直接访问数据源更加
    $a:?R
    {(N&^~.G


    K院校IT认证教育交流第一平台有效?BCD

    A. 使用ADO.NET 对XML 数据文件中的数据进行分析和处理
    (G:ih#`$z”E+M|B. 在SQL Server 数据库的表中搜索某个字段值
    ­Tx5uA[1]|


    OxIT农庄,IT认证,题库,微软认证,ATA认证C. 计算SQL Server 数据库中数据表的行数

    D. 在SQL Server 数据库中创建存储过程

     

    20.  打开SQL Connection 时返回的SQL Server 错误号为4060,该错误表示:A
    _j{#E
    JJE3ADOIT农庄,IT认证,题库,微软认证,ATA认证A. 连接字符串指定的服务器名称无效  B. 连接字符串指定的数据库名称无效
    tZ6t
    sK;I*Z4Fawww.itnz.cnC. 连接超时                        D. 连接字符串指定的用户名或密码错误

     

    21. 目前,Microsoft .NET Framework 的发行包中包含以下.NET 数据提供程序。AB

    A. SQL Server .NET 数据提供程序  8f J#L.\T”yg$];@5jB. OLE DB .NET 数据提供程序

    C. ODBC .NET 数据提供程序        D. XML .NET 数据提供程序
    ,~H,b-`


    }e0fIT农庄,IT认证,题库,微软认证,ATA认证

    22.  在ADO.NET 中使用XML 支持时,以下哪些建议是可取的?ABC
    FH @
    @dR
    Fwww.itnz.cnA. 从DataSet 读取XML 格式的数据       ["M‑}4h~L


    W{*Pwww.itnz.cnB. 使用XML 格式的数据填充DataSet
    v)E1m3_5BIT农庄,IT认证,题库,微软认证,ATA认证C. 为DataSet 创建XML 格式的构架描述   D. 将数据以XML 格式保存在数据库中

     

    23.在ADO.NET 中,为访问DataTable 对象从数据源提取的数据行。可使用DataTable 对象
    .}


    n#B'f&Z^'G#}的___ A ____属性。       1J[1]b!ZU9X([
    i aIT农庄,IT认证,题库,微软认证,ATA认证A. Rows  B. ColumnsI C. Constraints  R(T


    ? T3L@


    G&tUSD. DataSet

    24. 包含在DataSet集合中的集合是(A)

    A Tables集合                     B Columns集合

    C Rows集合                       D Parameters  集合

     

    25. 要检索指定主表记录的所有子表相关记录,应该调用的方法是(B)。

    A  GetParentRows                 B GetChildRows

    C  GetRelation                   D  GetRows

     

    四、简答题

    {
    j#No/W
    FxnIT农庄1.用.net做B/S结构的系统,您是用几层结构来开发,每一层之间的关系以及为什么要这样分层?

    答:一般为3层

    数据访问层,业务层,表示层。

    数据访问层对数据库进行增删查改。

    业务层一般分为二层,业务表观层实现与表示层的沟通,业务规则层实现用户密码的安全等。

    表示层为了与用户交互例如用户添加表单。

    优点: 分工明确,条理清晰,易于调试,而且具有可扩展性。

    缺点: 增加成本。

    第二十三章 ASP.NET基础

    一、名词解释

    1、 ASP.NET:是创建动态Web页的一种强大的服务器端新技术,利用这项技术,可以为Wrold Wide Web站点或为企业内部互联网创建动态的可进行交互的Web页面。

    2、 CodeBehind:asp.net提供的页面代码分离技术,避免像asp时代代码和页面混写。

    3、 B/S结构:(Browser/Server结构)结构即浏览器和服务器结构。对C/S结构的一种变化或者改进的结构。在这种结构下,用户工作界面是通过 WWW浏览器来实现,极少部分事务逻辑在前端(Browser)实现,但是主要事务逻辑在服务器端(Server)实现。

    4、 Web窗体:是一项ASP.NET功能,可以使用它为Web应用程序创建用户界面。

    5、 Visual Studio.NET环境:是开发ASP.NET应用程序的IDE环境。

    二、选择题

    1、 (B)是用于创建Web应用程序的平台,此应用程序可使用IIS和.NET Framework在Windows服务器上运行。

    A. C#

    B. ASP.NET

    C. VB.NET

    D. Visual Studio.NET

    2、 Web窗体与(C)无关

    A. 控件

    B. 服务器

    C. 浏览器

    D. 编译器

    3、 下面不属于ASP.NET的功能的是(D)

    A. 多语言支持

    B. 代码编译执行

    C. 缓存机制

    D. 较差的安全性

    4、 (B)是用于地址的逻辑目录名与服务器上的物理目录相对应,也可成为URL映射

    A. 目录

    B. 虚拟目录

    C. IIS

    D. Web窗体

    5、 (D)用于在IIS中创建虚拟目录

    A. 目录创建向导

    B.  Web创建向导

    C. 虚拟路径向导

    D. 虚拟目录创建目录

    6、 (A)文件由Visual Studio .NET创建,用于定义Web应用程序的配置。

    A. Web.Config

    B. Global.asax

    C. AssemblyInfo.cs

    D. ASPX

    三、简答题

    1、 ASP.NET与ASP有哪些不同之处?
    答:ASPX 代码与 HTML 设计和文本分离、支持强类型语言,如 C#、VB、简单性和易学性、通过继承机制支持代码的重用、编译页执行效率的大幅提高、易于配置和部署。

    2、 在IIS中如何建立一个虚拟目录?
    答:打开IIS,右键单击“默认Web站点”节点,然后选择“新建”→“虚拟目录”,然后按照“虚拟目录创建向导”的提示完成创建。

    3、 什么是Web窗体?

    答:Web窗体是一项ASP.NET功能,可以使用它为Web应用程序创建用户界面。Web窗体将Web应用程序分为两部分:可视化组建和该页的编程逻辑。

    4、 服务器端控件有几种类型?分别是什么?
    答:2种,分别是:Web服务器控件和HTML服务器控件。

    5、  如果用户先安装.net,然后再安装IIS,造成安装之后IIS不支持ASP.NET,怎么解决这个问题?
    答:使用aspnet_regiis –i来安装当前版本的asp.net到IIS即可。

    第二十四章 JS基础

    一、填空题

    1、 SCRIPT 标记用于包含javascript代码,其中LANGUAGE定义脚本语言 的种类,SRC表示定义一个URL用以指定以.JS结尾的文件

    2、 JS中windows对象表示每个HTML文档的顶层对象

    3、 JS中appCodeName表示相对于用户浏览器的codename 、appName表示相对于用户浏览器的实际名字、appVersion表示相对于用户浏览器的版本号、userAgent该属性反映用户浏览器的全部信息

    4、 JS中的注释为__//__

    5、 JS是一种基于对象类型脚本语言

    6、 传统的HTML文档顺序是html head body

    7、 一个浏览器窗口中的DOM顺序是windownavigatorscreenhistorylocationdocument

    8、 JS中的字符与字符相连接使用__+__号

    9、 parent代表父亲对象top代表最顶端对象

    10、         引用一个文件名为aaa.js的JS <script type= "text/javascript " src= "aaa.js " > </script >

    11、         指定在不支持脚本的浏览器显示HTML的标记为 <noscript></noscript >

    二、选择题

    1、 以下哪个单词属于javascript保留字:(B)
    A. with
    B. parent
    C. class
    D. void

    2、 请选择结果为真的表达式:(C)
    A. null   instanceof   Object
    B. null   ===   undefined
    C. null   ==   undefined
    D. NaN   ==   NaN

    3、 下列说法正确的是:(D)
    A. JScript是javascript的简称
    B. javascript是网景公司开发的一种Java脚本语言,其目的是为了简化Java的开发难度
    C. FireFox和IE存在大量兼容性问题的主要原因在于他们对javascript的支持不同上
    D.JavaScript和Java是不同的两种语言

    4、 在不指定特殊属性的情况下,哪几种HTML标签可以手动输入文本:(AB)
    A. <TEXTAREA></TEXTAREA>
    B. <INPUT   type=”text”/>
    C. <INPUT   type=”hidden”/>
    D. <DIV></DIV>

    5、 关于表格表述正确的有:(ABCDE)
    A. 表格中可以包含TBODY元素
    B. 表格中可以包含CAPTION元素
    C. 表格中可以包含多个TBODY元素
    D. 表格中可以包含COLGROUP元素
    E. 表格中可以包含COL元素

    6、 关于IE的window对象表述正确的有:(ACD)
    A. window.opener属性本身就是指向window对象
    B. window.reload()方法可以用来刷新当前页面
    C. window.location=”a.html”和window.location.href=”a.html”的作用都是把当前页面替换成a.html页面
    D. 定义了全局变量g;可以用window.g的方式来存取该变量

    三、简答题

    1、 如何将JavaScript语句插入HTML文档中?
    答:使用 <SCRIPT> 标签将语句嵌入文档或者将JavaScript 源文件链接到 HTML 文档中

    2、 是否可以将外部 JavaScript 文件链接到 HTML 文档中?如果可以该如何链接?
    答:可以。使用SCRIPT 标签的 SRC(源文件)属性可用于包括此外部文件,<script language=“JavaScript” src= “文件名.js"></script>

    3、 简述DIV元素和SPAN元素的区别。
    答:最明显的区别是:DIV(division)是一个块级元素,可以包含段落、标题、表格,乃至诸如章节、摘要和备注等。而SPAN 是行内元素,SPAN 的前后是不会换行的,它没有结构的意义,纯粹是应用样式,当其他行内元素都不合适时,可以使用SPAN。块元素相当于内嵌元素在前后各加一 个<br>换行。其实,块元素和行内元素也不是一成不变的,只要给块元素定义display:inline,块元素就成了内嵌元素,同样地, 给内嵌元素定义了display:block就成了块元素了。

    4、 说几条XHTML规范的内容(至少3条)
    答:所有的标记都必须要有一个相应的结束标记
    所有标签的元素和属性的名字都必须使用小写
    所有的XML标记都必须合理嵌套
    所有的属性必须用引号""括起来
    把所有<和&特殊符号用编码表示
    给所有属性赋一个值

    5、 Java和Javascript有什么区别?
    答:Javasrcipt与Java的区别包括在以下几方面:
    1)JS为基于对象,而JAVA为面向对象;
    2)JS为解释性编程语言,而JAVA不编译编程语言;
    3)JS采用弱变量,而JAVA采用强变量;
    4)代码格式不一样;
    5)嵌入方式不一样,JS采用<script>…</script>,而JAVA采用<applet>…</applet>;

    6、 Javascript的特点是什么?
    答:JS特点主要包括以下几方面:
    1)是一种脚本编写语言;2)基于对象;3)基于事件;
    4)安全的;5)简单的;6)跨平台的。

    第二十五章 JS数据类型及流程控制

    一、填空题

    1、  JS中声明变量使用 var来进行声明

    2、  定义常量的关键字是const

    3、          JS中的值类型String,Number,Boolean,Null,Object,Function

    4、          JS中的取字符串长度是length

    5、          JS中的比较操作符有  ==  ,  !=  ,   >  ,   >=  ,   <  .   <= 

    6、          JS中的判断语句结构有if else switch case

    7、          JS中的循环结构有 for while

    8、          循环中止的命令是break

    9、  定义日期型变量 var today = new Date()
    10、string.split(分隔符) 用来使用指定分隔符返回一个数组.
    11、字符串连接string.concat(string2) 或用 + 进行连接
    12、string.match(regExpression) 用来判定字符串是否匹配
    13、parseInt(string[,radix(代表进制)]) 用来强制转换成整型.
    14、parseFloat(string[,radix]) 用来强制转换成浮点型.

    15、字符串按指定分隔符返回一个数组存储值的方法是split(分隔符)

    16、字符串取从第几位到指定长度的字符串的方法是substr(start[,length])

    17、string.toLowerCase() 使字符串全部变为小写

    18、string.toUpperCase() 使全部字符变为大写

    19、isNaN(变量) 用于测试变量是否为数值型

    二、简答题

    1、   简述indexof的作用
    答:变量.indexOf( “字符”, 起始位置),返回第一个出现的位置(从0开始计算)

    2、 简述break 和 continue各自的作用
    答:当某些条件得到满足时,用 break 语句来中断一个循环的运行。(也用 break 语句退出一个 switch 块。)。如果是一个 for 或者 for…in 循环,在更新计数器变量时使用 continue 语句越过余下的代码块而直接跳到下一个循环中。

    3、 简述JavaScript中有哪些选择结构、有哪些循环结构
    答:if、if/else、?、switch;while、do/while、for/in、for

    4、  简述Undefined 数据类型的特点
    答:通常对象属性不存在或者声明了变量但从未赋值,会返回 undefined 值,需要注意的是,不能通过与 undefined 做比较来测试一个变量是否存在,虽然可以检查它的类型是否为“undefined”。

    // 这种方法不起作用

    if (x == undefined)

    // 作某些操作

    // 这个方法同样不起作用- 必须检查

    // 字符串 “undefined”

    if (typeof(x) == undefined)

    // 作某些操作

    // 这个方法有效

    if (typeof(x) == “undefined”)

    // 作某些操作

    第二十六章 JS函数与对象

    一、名词解释

    1、 函数:函数执行操作,也可以返回值。某些时候是计算或比较的结果。函数是一系列指令的集合,是对反复使用或可能重用的行为的抽象,是通过某行为或事件引发执行的程序段。

    二、填空题

    1、 JS 支持两种函数:预定义函数自定义函数

    2、 JavaScript中函数的返回值用return 将值返回

    3、 JavaScript中的对象是由属性 和  方法两个基本的元素构成的

    4、 Jscript 支持四种类型的对象:内部对象生成的对象宿主给出的对象(如 Internet 浏览器中的 window document以及 ActiveX 对象(外部组件)

    5、 JavaScript中主要对象是 Array Date Math String

    6、 document.write() 是不换行的输出,document.writeln() 是换行输出

    7、 数学函数Math.max(value1,value2)用于返回两个数中的最大值,Math.pow(value1,10)返回value1的十次方,Math.round(value1)是用于返回value1四舍五入的函数

    8、 日期函数dateObj.getTime()用于得到时间  ,dateObj.getYear()用于得到当前年份,dateObj.getFullYear()用于得到四位的年份,dateObj.getMonth()用于得到当前月份

    9、 当在超链接中调用JS函数时用javascript 来开头后面加函数名

    三、简答题

    1、 JS中如何定义一个函数?
    答:JS中的函数定义:function 函数名(参数,…)
    {
    语句;
    ….
    }

    2、 JS中如何调用一个函数
    答:调用函数时在函数名后面加圆括号就可以了,通常函数调用语句放在html语言的一些属性中。调用函数又分为:带变量参数的函数和不带参数的函数。不带参数的函数调用:func_name () 带参数的函数调用:func_name(a, b)。

    3、 简述一下eval()函数的作用
    答:eval()是一个很有用的内部函数。该函数可以对以字符串形式表示的任意有效的 Jscript代码求值(执行)。eval() 函数有一个参数,该参数就是想要被执行的代码。

    4、  简述JavaScript对象中的属性和方法
    答:属性是对象在实施其所需要行为的过程中,实现信息的装载单位,从而与变量相关联;方法是指对象能够按照设计者的意图而被执行,从而与特定的函数相联。一个方法就是一个函数,是对象的成员。属性是一个值或一组值,也是对象的成员

    第二十七章 JS DOM与特效

    一、名词解释

    1、                 DOM:DOM(Document Object Model,文档对象模型),为HTML文档定义了一个与平台无关的程序接口,可以控制文档的内容、结构和样式。

    2、                 W3C:W3C是万维网联盟(World Wide Web Consortium)英文的缩写。

    3、                 CSS:CSS(Cascading Style Sheets,层叠样式表),是由W3C(全球广域网协会)所制定的HTML的规范表。

    4、                 API:应用编程接口。DOM其实可以看作一种API。

    5、                 Node:节点。节点分为:元素节点,属性节点,文本节点。元素节点包含属性节点和文本节点。

    6、                 表单(form):表单就是网页中站点服务器处理的一组数据输入域,用于实现网页交互功能。

    7、                 框架:框架是一个由框架网页所定义的浏览器视窗区域,将浏览器视窗分为不同的框架,每个框架则显示一个不同的网页。

    8、                 锚:锚(anchor)即书中所讲的“书签”,是在页面内部可以链接到指定的地方,也通过链接可以链接到其他页面指定的位置。

    9、                 XHTML:可扩展超文本置标语言(eXtensible HyperText Markup Language,XHTML),是一种置标语言,表现方式与超文本置标语言(HTML)类似,不过语法上更加严格。

    10、  内联样式表:内联式样式表是利用现有的HTML标记,把特殊的样式加入到那些由标记控制的信息中。

    11、  嵌入式样式表:嵌入式样式表是将样式内容嵌入到HTML文件头部(<head>和</head>)中,并使用<style>和</style>标记装载。

    12、  外部式样式表:外部式样式表是一种保存在外部的样式文件,文件以.css为扩展名,使用时用<link>标记引用到页面中。

    二、选择题

    1、  Dom对象中那个对象可以起到和浏览器后退效果一样的功能(D)
    A. screen
    B. navigator
    C. location
    D. history

    2、  在<font>标记的Size属性取值中,显示字体最小的是(A)
    A.1
    B.3
    C.5
    D.7

    3、  在标题字体标记<hx>中,x的取值为(A)时,显示字体最大
    A.1
    B.3
    C.4
    D.6

    4、  以下(B)标记是IE浏览器支持,而Netscape浏览器不支持
    A.<pre></pre>
    B.<blink></blink>
    C.<strong></strong>
    D.<strike></strike>

    5、  在<body>标记属性中,(C)为背景色属性
    A.color
    B.text
    C.bgcolor
    D.background

    6、  列表清单所采用的标记是(B)
    A.<ul></ul>
    B.<ol></ol>
    C.<dl></dl>
    D.<lh></lh>

    7、  表格标记中表示行的标记是(C)
    A.<table></table>
    B.<th></th>
    C.<tr></tr>
    D.<td></td>

    8、  以下表单元素中用于表示单选框的是(C)
    A.text
    B.password
    C.radio
    D.checkbox

    9、  框架中用于横向划分的属性是(A)
    A.cols
    B.rows
    C.colspan
    D.rowspan

    10、  在DHTML中把整个文档的各个元素作为对象处理的技术是(C)
    A.html
    B.css
    C.dom
    D.script

    11、  目前DIV的形状只能是(C)
    A.多边形
    B.圆形
    C.矩形
    D.梯形

    12、  为了实现页面对象的拖拽效果我们一般要在对应对象上实现以下(ABCD)事件
    A. onmousedown
    B. onmousemove
    C. onmouseup
    D. onmousedrag

    13、  在实际使用中我们可以用(D)很方便的获得页面中定义的HTML对象
    A. document.GetElementsByTagName
    B. document.getElementByTagNames
    C. document.getElementsById
    D. document.getElementById

    14、  在对一个标签对象操作中需要获取相邻对象节点的方法有(AC)
    A. element.nextSibling
    B. element.nextNode
    C. element.previousSibling
    D. element.previousNode

    三、填空题

    1、 我们需要获取客户端的事件参数,比如点击时的鼠标坐标,需要用到那个对象window.event

    2、 在javascript中实现定时效果时需要使用到window.setTimeout()window.setInterval()函数,对应的清除定时器函数是window.clearTimeout()window.clearInterval()

    3、 在页面结构中我们可以把每个页面看作是一个Dom树,每个标签可以看作一个节点,那么所有节点的根节点是window.document,当我们要在一个节点下添加一个新的元素时可以通过document.createElement()来创建一个新节点并通过对应节点的appendChild()方法附加到该节点中

    4、 我们通过document.images集合可以遍历页面中所有的img标签

    5、 在使用javascript操作页面元素时我们也可以修改这些元素的样式,一般来说我们可以通过className修改样式类名或者通过style来直接修改样式

    6、 用于表示上标的标记是<sup>,而用于表示下标的标记是<sub>

    7、 CSS中的文字属性中,用于表示字间距的是letter-spacing,用于表示文字缩进的是text-indent,用于表示行间距的是line-height

    8、 表单是实现用户交互功能的,其中用于指定表单处理程序的属性是action ,用于指定处理方式的属性是method

    9、 window.focus() 会使当前的窗口在所有窗口之前

    10、  blur()使当前元素失去焦点,与之相反的方法是focus()

    11、  如果要使元素被选定,应该使用方法是 select()

    12、  打开一个窗口使用window.open(),关闭一个窗口使用window.close(),打开子窗口的父窗口为opener

    13、  如果想让窗口重定向可以使用 window.location() window. Navigate()

    14、  弹出確认框 window.confirm() ,弹出输入提示框 window.prompt()

    15、  当窗口加载时会调用 onload() ,当窗口关闭时会调用 onunload() ,刷新当前页面使用window.location.reload()

    16、  window.history.back() 返回上一页,window.history.forward() 返回下一页,或者使用window.history.go(返回第几页,也可以使用访问过的URL) 来实现相同效果

    四、简答题

    1、 CSS样式主要作用?
    答:CSS的主要作用:
    1)针对页面中的对象的风格和样式进行定义;
    2)使得HTML各个标记的属性更具有一般性和通用性;
    3)建立CSS样式表时将对象真正引入HTML,使得可以使用脚本程序调用对象属性,并且可以改变对象的属性,达到运态的目的。

    2、 <a href=”a.html” onclick=”window.location=’b.html’”>测试</a> 请问当点击测试这个链接时会跳到哪个页面。
    答:会跳转到a.html,因为浏览器会先响应链接。

    3、 元素的innerHTML属性和innerText属性有何不同。
    答:innerHTML属性可以被赋值的内容可以有HTML标记,而innerText属性被赋值的内容不能有HTML标记,只可以是文本。

    4、 如何要在窗口的状态栏中设置文字?
    答:可以使用window.status=”要设置的文字”,或者使用window.defaultStatus=”要设置的文字”来实现。

    5、 如何实现添加到收藏夹的功能?
    答:可以使用external.AddFavorite(“链接”, “链接名称”)方法来实现。

    6、 如何防止链接文字折行?
    答:可以通过设置document.body.noWrap=true属性,来防止链接文字折行。

    7、  当使用document.getElementById(“标记id”)查找存在的标记时提示错误找不到对象,是什么原因?
    答:通常是因为我的js代码位于所要找的目标标记之前,或者我们的js代码调用的位置是在所要查找的目标标记之前,因此getElementById()无法找到所要查找的标记。

     

    第二十八章 ASP.NET服务器控件js

    一、简答题

    1、 服务器端控件的AutoPostBack属性有何用处?
    答:是设置是否都会发生自动回发到服务器的操作的属性,通常用于服务器端控件的自动回发行为,例如DropDownList控件如果其AutoPostBack属性为false,那么不管我们怎么选择DropDownList里的项,都不会引起页面的回传。

    2、 IsPostBack属性有何作用?
    答:IsPostBack 是用来检查目前网页是否为第一次加载,当使用者第一次浏览这个网页时Page.IsPostBack 会传回False,不是第一次浏览这个网页时就传回True;所以当我们在Page_Load 事件中就可以使用这个属性来避免做一些重复的动作。

    3、 什么是HTML控件
    答:传统的时一直使用HTML标记来制作静态和或动态页面,这些标准的HTML标记并没有办法利用程序直接制作它们的属性,方法和事件,因此程序设计者必须另外学习如JavaScript等语言才能控制这这些HTML标记。

    4、 什么是服务器控件?
    答:如果说HTML控件式对HTML标记的扩充,那么Web服务器控件就是对HTML控件的扩充。Web服务器控件具有更多内置功能。它不只包括窗类型的控件,例如按钮和文本框,而且还包括特殊用途的控件,例如广告轮旋和日历控件等。

    5、 服务器控件和HTML控件有何不同之处?
    答:HTML控件一般来说是运行在客户端,除了某些特例外,一般是不会提交页面。服务器控件被激发时都会产生页面的提交与刷新。

    6、 服务器控件和HTML控件有何相同之处?
    答:不管是HTML控件还是Web服务器的控件,它们最终返回到用户的都是标准HTML代码。

    7、 如何将HTML控件改成服务器控件?
    答:在HTML控件上点击右键,在菜单中选择“作为服务器端控件运行”即可。或者手动在HTML标记中添加runat=“server”。

    8、 HTML服务器控件和Web窗体控件分别继承自哪个类?
    答:HTML控件继承自System .Web.UI.HtmlControls。Web窗体控件集成自System.Web.UI.WebControls。

    9、 为什么可以通过客户端脚本来控制服务器端控件?
    答:因为不管是HTML控件还是Web服务器的控件,它们最终返回到用户的都是标准HTML代码。因此可以使用JS脚本对标准的HTML标记进行控制。

    10、  在服务器端我们有几种方法向客户端注册JS脚本?分别是什么?
    答:有两种方法,分别是RegisterStartupScript() 和 RegisterClientScriptBlock()。RegisterStartupScript(key, script) RegisterClientScriptBlock(key, script) 这两个方法都接受两个字符串作为输入。第二个参数 script 是要插入到页面中的客户端脚本,包括 <script> 的起始标记和终止标记。第一个参数 key 是插入的客户端脚本的唯一标识符。这两个方法唯一的不同之处在于从“何处”发送脚本块。RegisterClientScriptBlock() 在 Web 窗体的开始处(紧接着 <form runat=”server”> 标识之后)发送脚本块,而 RegisterStartupScript() 在 Web 窗体的结尾处(在 </form> 标识之前)发送脚本块。

    11、  服务器端控件在源视图状态下是以怎样的标记格式存在?
    答:是以<asp:… />形式的标记存在,例如按钮控件:<asp:Button id=”SubmitButton” Text=”Submit” CommandName=”Submit” OnCommand=”CommandBtn_Click” runat=”server”/>

    12、  如何在页面中嵌入服务器端执行的代码块?
    答:通过在代码声明块定义内使用 runat=”server” 属性标记的 script 块中的服务器代码节。
    <script runat=”server” language=”codelanguage” Src=”pathname”>
    代码…
    </script>

    13、  使用Response.Write(“<script>alert(‘’)</script>”)方式弹出一个js的提示框,但是这样的做法可能会使当前页面的布局出现问题,那么我们应该用什么方法来弹出对话框又不会影响页面布局?
    答:我们可以根据情况使用RegisterStartupScript() 和 RegisterClientScriptBlock()来向客户端页面注册脚本。

    14、    【重的题】使用Response.Write(“js代码”)的方式输出js代码,如果在此行代码后还有一行Response.Redirect(“链接”),那么此时还会不会执行前面所输出的js代码?
    答:会先跳转页面,不会执行前面所输出的代码。因为会先执行完服务器端的代码之后才会执行客户端的js代码,但是由于已经跳转页面,所以不会执行之前页面所输出的js代码。

     

     

    第二十九章 ASP.NET服务器控件 XMLHttpRequest

    一、名词解释

    1、 AJAX:AJAX 是Asynchronous JavaScript and XML的缩写。中文意思是异步的JavaScript和XML。

    2、 XML:XML(eXtensible Markup Language)即可扩展标记语言,它与HTML一样,都是SGML(Standard Generalized Markup Language,标准通用标记语言)。

    3、 XMLHttpRequest:XMLHttpRequest对象是当今所有AJAX和Web 2.0应用程序的技术基础。通过它来实现发送和接收HTTP请求与响应信息。

    二、简答题

    1、 超级链接 HyperLink控件作用是什么?
    答:超级链接 HyperLink控件的作用就是生成一个超级链接。

    2、 下拉列表控件有什么作用?
    答:DropDownlist Web服务器控件允许用户从预定义列表中选择一项或多项。这可以减少用户的输入,节约版面空间,同时还可以防止用户输入非法数据。

    3、 Table控件如何按编程的方式来生成表格?
    答:Table控件可按编程方式生成表格,方法是将TableRow添加到表的Rows集合,并将TableCell添加到行的Cells集合。通过将控件添加到单元格的Controls集合,可按编方式将内容添加到表单元格中。

    4、 XMLHttpRequest是什么?有什么作用?
    答:XMLHttpRequest对象是Ajax的核心对象,用于对后台数据的异步访问,并通过预设的回调函数来处理返回的数据。

    5、 XMLHttpRequest有什么常用的方法和属性?
    答:XMLHttpRequest常用方法:open()、send()
    XMLHttpRequest常用属性:onreadystatechange、readystate、responseText、responseXML、status、statusText

    6、 XMLHttpRequest的readyState有哪几种?分别表示什么?
    答:0  描述一种”未初始化”状态;此时,已经创建一个XMLHttpRequest对象,但是还没有初始化。
    1  描述一种”发送”状态;此时,代码已经调用了XMLHttpRequest open()方法并且XMLHttpRequest已经准备好把一个请求发送到服务器。
    2  描述一种”发送”状态;此时,已经通过send()方法把一个请求发送到服务器端,但是还没有收到一个响应。
    3  描述一种”正在接收”状态;此时,已经接收到HTTP响应头部信息,但是消息体部分还没有完全接收结束。
    4  描述一种”已加载”状态;此时,响应已经被完全接收。

    7、 XMLHttpRequest对象的onreadystatechange事件有什么作用?
    答:无论readyState值何时发生改变,XMLHttpRequest对象都会激发一个readystatechange事件。其 中,onreadystatechange属性接收一个EventListener值-向该方法指示无论readyState值何时发生改变,该对象都将 激活。通常也是由它来调用我们定义好的回调函数(一个方法)。

    8、 简述XMLHttpRequest对象的responseText属性的作用
    答:responseText属性包含客户端接收到的HTTP响应的文本内容。当readyState值为0、1或2时,responseText包含一 个空字符串。当readyState值为3(正在接收)时,响应中包含客户端还未完成的响应信息。当readyState为4(已加载)时,该 responseText包含完整的响应信息。

    9、 简述XMLHttpRequest对象的responseXML属性的作用
    答:responseXML属性用于当接收到完整的HTTP响应时(readyState为4)描述XML响应;此时,Content-Type头部指定 MIME(媒体)类型为text/xml,application/xml或以+xml结尾。如果Content-Type头部并不包含这些媒体类型之 一,那么responseXML的值为null。无论何时,只要readyState值不为4,那么该responseXML的值也为null。

    10、  简述XMLHttpRequest对象的status属性的作用
    答:status属性用来表示服务器HTTP状态码(200对应ok,404对应Not Found(未找到)等等)。

    11、  简述XMLHttpRequest对象的open()方法的作用
    答:你需要调用open(DOMString method,DOMString url,boolean async)方法初始化一个XMLHttpRequest对象。其中,method参数是必须提供的-用于指定你想用来发送请求的HTTP方法 (GET,POST,PUT,DELETE或HEAD)。为了把数据发送到服务器,应该使用POST方法;为了从服务器端检索数据,应该使用GET方法。 另外,url参数用于指定XMLHttpRequest对象把请求发送到的服务器相应的URI,async参数指定是否请求是异步的-缺省值为true。 为了发送一个同步请求,需要把这个参数设置为false。

    12、  简述XMLHttpRequest对象的send()方法的作用
    答:在通过调用open()方法准备好一个请求之后,你需要把该请求发送到服务器。仅当readyState值为1时,你才可以调用send()方法;否 则的话,XMLHttpRequest对象将引发一个异常。该请求被使用提供给open()方法的参数发送到服务器。当async参数为true 时,send()方法立即返回,从而允许其它客户端脚本处理继续。在调用send()方法后,XMLHttpRequest对象把readyState的 值设置为2(发送)。当服务器响应时,在接收消息体之前,如果存在任何消息体的话,XMLHttpRequest对象将把readyState设置为 3(正在接收中)。当请求完成加载时,它把readyState设置为4(已加载)。对于一个HEAD类型的请求,它将在把readyState值设置为 3后再立即把它设置为4。

    13、  传统Web应用程序的结构与采用了AJAX技术的Web应用程序的结构上的差别是什么?
    答:主要的差别,其实不是JavaScript,不是HTML/XHTML和CSS,而是采用了XMLHttpRequest来向服务器异步的请求XML数据。

    14、  AJAX包含哪五个部分的内容?
    答:基于标准的表示技术,使用XHTML与CSS
    动态显示和交互技术,使用Document Object Model(文档对象模型)
    数据互换和操作技术,使用XML与XSLT
    异步数据获取技术,使用XMLHttpRequest
    而JavaScript 将以上的一切都结合在一起

    第三十章 GridView与SqldataSource控件一

    一、选择题

    1. 以下不是SqldataSource的事件是:   (   B   )

    A. Inserting

    B. Editing

    C. Deleting

    D. Selecting

     

    1. 以下不是SqldataSource的ProviderName是:   (   B   )

    A.System.Data.SqlClient

    B.System.Data.Ado

    C.System.Data.Odbc

    D.System.Data.Oledb

    1. 使用以下那个不是SqldataSource的DataSourceMode (   C     )

    A.DataSet

    B.DataReader

    C.DataTable

    D.以上都是

    二、填空题

    1. 使用SqldataSource的执行查询语句要并且是按Sql语句执行要设置:   SelectCommandType为Text,并且SelectQuery是对应的Sql语句
    2. 使用SqldataSource的执行删除语句要并且是按存储过程语句执行要设置:   DeleteCommandType为StoredProcedure,并且DeleteQuery是对应的Sql语句
    3. SqlDataSource的CommandType包含:

    InsertCommandType,UpdateCommandType,SelectCommandType,DeleteCommandType

    三、问答题

    1. 试写一个在配置文件里的连接字符串,以及在服务端的调用

    <configuration>

    <connectionStrings>

    <add name=”Pubs” connectionString=”Server=(local);Database=pubs;uid=sa;pwd=sa;” />

    </connectionStrings>

    </configuration>

    调用:

    string connectionString =ConfigurationManager.ConnectionStrings["Northwind"].ConnectionString;

    第三十一章 GridView与SqldataSource控件二

    一、填空题

    1. SqlDataSource是一切支持SQL语句的数据源控件
    2. AccessDataSource 是Access数据源控件
    3. XmlDataSource是XML数据源控件
    4. ObjectDataSource是自行编写组件的数据源控件
    5. SiteMapDataSource是页面导航控件的数据源控件
    6. ConnectionString连接数据库的连接字符串
    7. SelectCommand用于执行查询的命令
    8. InsertCommand用于执行插入的命令
    9. UpdateCommand用于执行更新的命令
    10. DeleteCommand用于执行删除的命令
    11. DataSourceMode指定数据源类型是DataSet DataReader
    12. EnableCaching指定是否打开缓存(默认值= false)
    13. CacheDuration指定结果被缓存多少妙
    14. CacheExpirationPolicy指定缓存间隔是sliding 还是absolute
    15. CacheKeyDependency使缓存依赖于一个特定键值
    16. SqlCacheDependency使缓存依赖于一个特定数据库实体
    17. SelectParameters为查询命令指定参数
    18. InsertParameters为插入命令指定参数
    19. UpdateParameters为更新命令指定参数
    20. DeleteParameters 为删除命令指定参数
    21. FilterParameters为过滤器命令指定参数
    22. ControlParameter指定一个源自于控件的参数
    23. CookieParameter 指定一个源自于cookie的参数
    24. FormParameter  指定一个源自于表单的参数
    25. ProfileParameter 指定一个源自于profile的参数
    26. QueryStringParameter制定于一个来源于查询字符串的参数
    27. Parameter为数据源绑定一个参数
    28. SessionParameter指定一个源自于session的参数

    二、问答题

    1. 简述一下连接池的作用

    答:打开与关闭数据库都是比较耗时的。为此,ADO.NET自动将数据库连接存放在连接池中。连接池可以大幅度提高程序的性能和效率,因为我们不必 等待建立全新的数据库连接过程,而是直接利用现成的数据库连接。注意,利用Close()方法关闭连接时,并不是实际关闭连接,而是将连接标为未用,放在 连接池中,准备下一次复用。

    第三十二章 数据源控件一

    一、选择题

    1. 使用GridView进行编辑,更新,取消的时候,要用到以下哪些事件:(  D      )

    A.RowEditing,RowDeleting,RowUpdated

    B.RowEditing,RowDeleted,RowUpdated

    C.RowUpdating,RowCancelingEdit,SelectedIndexChanging

    D.RowEditing,RowUpdating,RowCancelingEdit

    1. 使用GridView进行分页的时候,指定每页大小以及允许分页,需要用到以下哪些属(  A  )

    A.AllowPaging,PageSize

    B.AllowSorting,PageSize

    C.TabIndex   ,PageIndex

    D.PageSize,PageIndex

    1. 设置GridView主键字段的属性是:(  B    )

    A. AccessKey

    B. DataKeyNames

    C. Columns

    D. DataSourceID

    1. 设置GridView编辑行的索引的属性的是:(  C    )

    A. PageIndex

    B. SelectedIndex

    C. EditIndex

    D. TabIndex

    1. 公司员工列表的应用程序。您使用一个DataGrid控件显示员工的列表。您打算修改这个控件以便在这个Grid的Footer显示员工合计数。请问您应该怎么做?(  C  )

    A.重写OnPreRender事件,当Grid的Footer行被创建时显示合计数。

    B.重写OnItemCreated事件,当Grid的Footer行被创建时显示合计数。

    C.重写OnItemDataBound事件,当Grid的Footer行被创建时显示合计数。

    D.重写OnLayout事件,当Grid的Footer行被创建时显示合计数

    二、填空题

    1. 在Asp.net中所有的自定义用户控件都必须继承System.Web.UI.UserControl
    2. 在使用GridView分页在点分页的页码时,会调用PageIndexChanging事件。
    3. 在点GridView的自带的编辑按钮时会触发RowEditing事件
    4. 在点GridView的自带的修改按钮时会触发RowUpdating事件
    5. 在点击GridView自带的取消按钮时会触发RowCancelingEdit事件
    6. 在点GridView的自带的删除按钮时会触发RowDeleting事件

    三、问答题

    1. 完成下列要求:

    a) 要求连接的服务器名:.

    b) 要求连接的数据库名:pubs

    c) 要求连接的账号:sa

    d) 要求连接的密码:sa

    e) 查询jobs表中的所有数据(字段:job_id,job_desc,min_lvl,max_lvl),并将查询结果绑定在GridView控件上

    f) 页面首次加载才显示数据

    答:

    If(!IsPostBack)

    {

    string strConn=“server=.;database=pubs;uid=sa;pwd=sa;”;

    Using(SqlConnection conn = new SqlConnection(strConn))

    {

    conn.open();

    string strSql=”Select ob_id,job_desc,min_lvl,max_lv from jobs”;

    SqlCommand comm = new SqlCommand(strSql,conn);

    DataSet ds = new DataSet();

    SqlDataAdapter adapter = new SqlDataAdapter(comm);

    Adapter.Fill(ds);

    myGridView.DataSource =ds.Tables[0];

    myGridView.DataBind();

    }

    }

    第三十三章 数据源控件二

    一、填空题

    1. 在GridView修改完成后或者要取消修改,设置GridView的EditIndex为-1
    2. GridView分页的核心代码是myGrid.PageIndex=e.NewPageIndex
    3. 在GridView里嵌套一个DropDownList会使用到模板列.
    4. GridView的绑定的列是BoundField.
    5. GridView中通过e.CommandName来获取RowCommand事件的命令名称
    6. GridView嵌套GridView子GridView的绑定是在父GridView的RowDataBound事件中完成的
    7. 在GridView的Columns集合中BoundField是为显示数据源中某个字段的值,那么  CheckBoxField   是为 GridView 控件中的每一项显示一个复选框,   CommandField  是为GridView显示用来执行选择、编辑或删除操作的预定义命令按钮。
    8. 通过将GridView控件的  AllowSorting            属性设置为    true          ,即可启用该控件中的默认排序行为。

    二、问答题

    1. <%# %> 和 <% %>有什么区别?
      答:<%# %>表示绑定的数据源; <% %>是服务器端代码块

    第三十四章 Detailview、FormView、Datalist控件一

    一、选择题

    1. 以下设置 DataList 控件数据是垂直显示还是水平显示的属性是:(   B   )

    A. RepeatColumns

    B. RepeatDirection

    C.RepeatLayout

    D.GridLines

    1. 以下哪个是DataList控件提供的编辑项目模板:(  C    )

    A. AlternatingItemTemplate

    B. SelectedItemTemplate

    C.ItemTemplate

    D.EditItemTemplate

    1. Repeater控件会循环下列哪个模板:(  B  )

    A. HeaderTemplate

    B. ItemTemplate

    C.FooterTemplate

    D.SelectedItemTemplate

    1. 以下对于各个模板描述正确的是:(   D   )

    A. ItemTemplate:自定义 List、ObjectList 或 Form 控件的页眉

    B. HeaderTemplate:自定义 List 或 ObjectList 控件中的交替项

    C.SeparatorTemplate:自定义在 ObjectList 控件中如何呈现列表项的详细信息  D.FooterTemplate:自定义 List、ObjectList 或 Form 控件的页脚您要创建一个显示

    1. 以下对DataList控件中的EditItemIndex属性描述错误的是:(   C   )

    A. EditItemIndex 属性从一开始

    B. 若要取消对项的选定,将 EditItemIndex 属性设置为 -1

    C.EditItemIndex 属性存储在控件状态中

    D.EditItemIndex表示DataList 控件中要编辑的选定项的索引号

    1. 一次只能显示一条数据的控件(   D  )

    A.  Repeater

    B.  DataList

    C. GridView

    D. DetailsView

    1. 以下哪个控件是绑定控件(  A    )

    A.  Repeater

    B.  FileUpload

    C. Wizard

    D. Calendar

    二、填空题

    1. DataList的编辑模版是EditItemTemplate
      1. DataList的选择模版是SelectItemTemplate
      2. Repeater控件的数据源可以是      ArrayList            IList          以及DataTable等等(其他答案如DataSet也可)。
      3. 如果将DataList的       RepeatDirection       属性设置为      Horizontal        ,则列表中的项以列的形式显示,自上而下、从左到右地加载,直到呈现出所有的项;如果将DataList的          RepeatColumns    属性设置为3,则 DataList 控件中的项按三列显示。
      4. 当单击DataList控件中的任一按钮时发生DataList控件的    ItemCommand          事件,当对 DataList控件中的某个项单击Edit按钮时发生DataList控件的   EditCommand    事件,当对 DataList控件中的某个项单击Delete按钮时发生DataList控件的   DeleteCommand       事件。GridView1.DataSource=某个集合。能这么设置是因为该集合继承了IList接口。
      5. 在Asp.Net中,一次只能显示一条数据的控件有     DetailsView           FormView        .
      6. 用DataList绑定Northwind数据库里的Employee表的LastName字段,在前台模版里应该写<%# Eval(“LastName”)%>

    三、问答题,

    1. DataList控件提供了几种模板?请简述ItemTemplate模板和EditItemTemplate模板的基本功能

    答:三种模版。

    ItemTemplate是循环显示模板。

    EditItemTemplate是修改模板。

    1. 简述GridView、DataList、Repeater之间的区别。

    答:GridView是以表格方式来显示数据。

    DataList是以;列表的方式来显示数据

    Repeater是完全以自由灵活的显示数据

    第三十五章 Detailview、FormView、Datalist控件二

    一、选择题

    1. DetailsView控件包含多个对象(   D  )

    A  Views

    B  Columns

    C  Nodes

    D  Fields

    1. 以下不是FormView的模板是 (   C  )

    A  InsertItemTemplate
    B  EditItemTemplate
    C  DeleteItemTemplate

    D  ItemTemplate

    1. 以下不是FormView的属性是 (   C  )

    A EmptyDataTemplate
    B EditItemTemplate
    C Fields

    D ItemTemplate

    二、问答题

    1. ASP.NET 2.0 的数据绑定控件概述与区别(GridView、DetailsView、FormView 、Repeater、DataList)

    GridView 控件

    GridView 控件以表的形式显示数据,并提供对列进行排序、分页、翻阅数据以及编辑或删除单个记录的功能。

    注意:GridView 控件是 ASP.NET 的早期版本中提供的 DataGrid 控件的后继控件。除了添加利用数据源控件功能的新功能,GridView 控件还实现了某些改进,例如,定义多个主键字段的功能、使用绑定字段和模板的改进用户界面自定义以及用于处理或取消事件的新模型。

    DetailsView 控件

    DetailsView 控件一次呈现一条表格形式的记录,并提供翻阅多条记录以及插入、更新和删除记录的功能。DetailsView 控件通常用在主/详细信息方案中,在这种方案中,主控件(如 GridView 控件)中的所选记录决定了 DetailsView 控件显示的记录。

    FormView 控件

    FormView 控件与 DetailsView 控件类似,它一次呈现数据源中的一条记录,并提供翻阅多条记录以及插入、更新和删除记录的功能。不过,FormView 控件与 DetailsView 控件之间的差别在于:DetailsView 控件使用基于表格的布局,在这种布局中,数据记录的每个字段都显示为控件中的一行。而 FormView 控件则不指定用于显示记录的预定义布局。实际上,您将创建包含控件的模板,以显示记录中的各个字段。该模板包含用于设置窗体布局的格式、控件和绑定表达 式。

    Repeater 控件

    Repeater 控件使用数据源返回的一组记录呈现只读列表。与 FormView 控件类似,Repeater 控件不指定内置布局。您可以使用模板创建 Repeater 控件的布局。

    DataList 控件

    DataList 控件以表的形式呈现数据,通过该控件,您可以使用不同的布局来显示数据记录,例如,将数据记录排成列或行的形式。您可以对 DataList 控件进行配置,使用户能够编辑或删除表中的记录。(DataList 控件不使用数据源控件的数据修改功能;您必须自己提供此代码。)DataList 控件与 Repeater 控件的不同之处在于:DataList 控件将项显式放在 HTML 表中,而 Repeater 控件则不然。

    1. Eval 和 Bind 函数的区别

    据绑定表达式包含在 <%# 和 %> 分隔符之内,并使用 Eval 和 Bind 函数。

    Eval 函数用于定义单向(只读)绑定。

    Bind 函数用于定义双向(可更新)绑定。

    除了通过在数据绑定表达式中调用 Eval 和 Bind 方法执行数据绑定外,还可以调用 <%# 和 %> 分隔符之内的任何公共范围代码,以在页面处理过程中执行该代码并返回一个值。

    调用控件或 Page 类的 DataBind 方法时,会对数据绑定表达式进行解析。对于有些控件,如 GridView、DetailsView 和 FormView 控件,会在控件的 PreRender 事件期间自动解析数据绑定表达式,不需要显式调用 DataBind 方法。

    1. 什么是WEB控件?使用WEB控件有那些优势?

    答: web控件就是可以在服务器执行的控件,优势在于可以回传数据,带有事件驱动

    第三十六章 导航控件一

    一、选择题

    1. 以下哪个控件是树型控件(  C    )

    A Repeater

    B DataList

    C TreeView

    D Menu

    1. 以下哪个文件是站点地图文件(  C   )

    A Global.asax

    B Web.config

    C Websitemap

    D 以上都不是

    1. ASP.NET框架中,服务器控件是为配合Web表单工作而专门设计的。服务器控件有两种类型,它们是(   A   )

    A HTML控件和Web控件
    B HTML控件和XML控件
    C XML控件和Web控件
    D HTML控件和IIS控件

    1. 以下哪个文件是站点配置文件(  B   )

    A Global.asax

    B Web.config

    C Websitemap

    D 以上都不是

    1. TreeView控件包含多个对象(  C )

    A Views

    B Columns

    C Nodes

    D WizardSteps

    二、填空题

    1. 站点地图是Web.sitemap文件.
    2. 用户控件的后缀名是.ascx
    3. TreeView控件是以树型结构递归显示数据,可扩展和折叠的分支,节点是可导航, 可选择的,也可添加选择框。
    4. TreeView中SelectedIndexChange事件是对树结构进行选择时产生的,还有一个触发条件autopostback=true
    5. TreeView控件中表示被选种结点的属性是SelectedNode
    6. TreeView控件当分支被展开时所触发的事件是TreeNodeExpanded
    7. TreeView控件当节点被绑定到数据源时所触发的事件是TreeNodeDataBound
    8. TreeView控件当选择的节点发生改变时触发的事件是SelectedNodeChanged
    9. TreeView控件中的节点TreeNode的文字的属性是Text

    10.当单击TreeView控件TreeNode节点时所要导航到的url路径是NavigateUrl

    11.TreeView控件中设置展开/折叠状态的属性是ShowExpandCollapse

    12.TreeView控件中Nodes 是TreeNodeCollection类型的节点集合

    13.TreeView控件中声明是否显示复选框的属性是ShowCheckBoxes

    三、问答题

    1. 什么是ASP.net中的用户控件?
      答:  用户控件就是.ascx扩展名的东西,可以拖到不同的页面中调用,以节省代码.比如登陆可能在多个页面上有,就可以做成用户控件,但是有一个问题就是用户控件拖到不同级别的目录下后里面的图片等的相对路径会变得不准确,需要自已写方法调整.

    第三十七章 导航控件二

    一、选择题

    1. 以下哪个控件是菜单控件(  D    )

    A Repeater

    B DataList

    C TreeView

    D Menu

    1. 关于ASP.NET中的代码隐藏文件的描述正确的是(C)

    A Web窗体页的程序的逻辑由代码组成,这些代码的创建用于与窗体交互。编程逻辑唯一与用户界面不同的文件中。该文件称作为“代码隐藏”文件,如果用C#创建,该文件将具有“.ascx.cs”扩展名。

    B项目中所有Web窗体页的代码隐藏文件都被编译成.EXE文件。

    C项目中所有的Web窗体页的代码隐藏文件都被编译成项目动态链接库(.dll)文件

    D 以上都不对

    1. ASP.NET中,在Web窗体页上注册一个用户控件,指定该控件的名称为”Mike”,正确的注册指令为(b)
      A  <%@Register  TagPrefix  = “Mike”   TagName= “Space2”   Src= “myX.ascx”%>
      B <%@Register   TagPrefix   = “Space2”   TagName= “Mike”   Src= “myX.ascx”%>

    C  <%@Register   TagPrefix  = “SpaceX”   TagName= “Space2”   Src = “Mike”%>
    D  以上皆非

    二、填空题

    1. Menu 控件具有两种显示模式:静态模式动态模式
    2. MaximumDynamicDisplayLevels 属性指定在静态显示层后应显示的动态显示菜单节点层数。
    3. 静态显示意味着 Menu 控件始终是完全展开的。整个结构都是可视的,用户可以单击任何部位。在动态显示的菜单中,只有指定的部分是静态的,而只有用户将鼠标指针放置在父节点上时才会显示其子菜单项。
    4. 若要为单个菜单项指定一个窗口或框架,请直接设置 MenuItem 对象的 Target 属性。
    5. Menu 控件还可以绑定到 XmlDocument 对象。若要绑定到此数据源,请将 Menu 控件的 DataSource 属性设置为该数据源,然后调用 DataBind 方法。
    6. MenuItemClick 单击菜单项时发生。此事件通常用于将页上的一个 Menu 控件与另一个控件进行同步。
    7. 您可以通过两种方式来定义 Menu 控件的内容:添加单个 MenuItem 对象(以声明方式或编程方式);用数据绑定的方法将该控件绑定到 XML 数据源

     

    第三十八章 ASP.NET高级控件一 multiView Wizard

    一、选择题

    1. multiView控件的获取下一版控件的方法是(   A  )

    A ActiveViewIndex+=1

    B PageIndex+=1

    C EditIndex+=1

    D 以上都不是

    1. 如何设置detailsview的宽度(  D   )

    A style.width

    B style.display

    C height

    D width

    1. multiview控件包含多个对象(  A )

    A Views

    B Columns

    C Nodes

    D WizardSteps

    1. 以下哪个控件是用来向导控件(  C    )

    A Repeater

    B FileUpload

    C Wizard

    D Calendar

    1. Wizard控件当从一个步骤转换到另一个步骤时, 触发事件是(  C   )

    A PreviousButtonClick

    B NextButtonClick

    C ActiveStepChanged

    D FinishButtonClick

    1. Wizard控件包含多个对象(  D )

    A Views

    B Columns

    C Nodes

    D WizardSteps

    二、填空题

    1. 获取或者设置multiView控件的活动的View控件索引是ActiveViewIndex
    2. 控件的获取上一版控件的方法是ActiveViewIndex-=1
    3. multiView控件的获取下一版控件的方法是ActiveViewIndex+=1
    4. ActiveViewIndex:该属性默认值为1,为了显示第一个步骤中的页面,将其值设置为0
    5. 一个multiview控件包含多个views对象,每个views对象里是可以摆放控件的,但注意,在每个views对象里,所放置的控件的名称ID必须唯一,否则会出错。
    6. multiview控件中,不提供任何自动的按钮,要实现“下一步”,“上一步”的按钮,必须自己添加。
    7. 向导控件Wizard的向导步骤在WizardSteps
    8. Wizard控件的每一个步骤是一个WizardStep控件.
    9. WizardStep的排版可以用TemplatedWizardStep,很灵活好用
    10. Wizard控件要求每页都有个取消按钮需要设置其DisplayCancelButton=true
    11. Wizard控件当从一个步骤转换到另一个步骤时,触发ActiveStepChanged事件
    12. Wizard控件当按”上一步”按钮时触发PreviousButtonClick事件
    13. Wizard控件当按”下一步”按钮时触发NextButtonClick事件
    14. Wizard控件当按”完成”按钮时触发FinishButtonClick事件
    15. Wizard控件当按”取消”按钮时触发CancelButtonClick事件
    16. 用.net做B/S结构的系统,您是用层结构来开发,分别是:表现逻辑数据

    三、问答题

    1. 简述一下Wizard控件和multiView的特点

    使用MultiView和View控件执行如下任务:

    可以使用MultiView和View控件作为创建多个Panel控件的一种替代方法。

    创建多页窗体。MultiView和View控件可以提供与Wizard控件相似的行为。Wizard控件尤其适合于创建用户分步骤填写的窗体。 Wizard控件还支持更多内置 UI 元素(如页眉和页脚)、“上一页”和“下一页”按钮以及模板。如果要创建根据条件(而不是按顺序)更改的显示,或者如果不需要 Wizard 控件支持的额外功能,则可以使用 MultiView 控件来代替 Wizard。

    第三十九章 ASP.NET高级控件二 FileUpload

    一、选择题

    1. 以下哪个控件是上传控件(  B    )

    A Repeater

    B FileUpload

    C Wizard

    D Calendar

    1. 以下哪个节点能用来设置上传文件最大大小(  B   )

    A System.Web

    B HttpRuntime

    C HttpModuels

    D HttpHanlers

    二、填空题

    1. FileUpload把文件保存在服务器的方法是SaveAs
    2. 设置FileUpload控件的上传文件的大小是在Web.Config文件里的HttpRuntimemaxRequestLength
    3. 获取FileUpload控件上传文件的文件名的属性是FileName
    4. 获取FileUpload上传文件的大小的属性是FileUpload.PostedFile.ContentLength

    三、问答题

    1. 试完成一个文件上传的程序。要求文件后的名字是一个10位的随机数加上”___”再加文件的名字.

    string path=Server.MapPath(“images”);

    if(!System.IO.Directory.Exists(path))

    {

    System.IO.Directory.CreateDirectory(path);

    }

    Random rnd = new Random();

    int n = rnd.Next(10000000000);

    string fileName = n.ToString()+”__”+ this.FileUpload1.FileName;

    this.FileUpload1.SaveAs(path+”\\”+fileName);

    第四十章 ASP.NET高级控件三 Calendar

    一、选择题

    1. 以下哪个控件是日历导控件(  D    )

    A Repeater

    B FileUpload

    C Wizard

    D Calendar

    1. Calendar控件的选择了一个新的日期后会触发(   A  )

    A SelectionChanged

    B PageChanged

    C SelectedChanged

    D IndexChanged

    1. 以下哪个类是Calendar控件的基类 (   A  )

    A WebControl

    B Contorl

    C UserControl

    D HtmlControl

    1. 给Calendar控件的某些日期的背景加入图片或者插入Label或LinkButton对象在以下那个事件里完成 (   A  )

    A DayRender

    B Load

    C Page_Load

    D SelectionChanged

    第四十一章 Web表单验证控件

    一、填空题

    1. 验证控件检查输入值在指定范围内RangeValidator
    2. 验证控件检查输入字符串匹配某个正则表达式的格式RegularExpressionValidator.
    3. ValidationSummary控件可以使其他验证控件提供的错误消息集中呈现
    4. 验证控件检查输入字段不为空RequiredFieldValidator.
    5. 验证控件检查输入值等于、不等于,小于、小于等于、大于或大于等于另一个使用CompareValidator
    6. 如果上述验证类型都不符合需要,您可以使用CustomValidator控件来制定自己的验证例程.
    7. 标准代码中:
      ControlToValidate表示要进行检查控件ID;
      ErrorMessage表示当检查不合法时,出现的错误信息;
      Display错误信息的显示方式。Static表示控件的错误信息在页面中占有肯定位置。Dymatic表示控件错误信息出现时才占用页面控件。None表示错误出现时不显示,但是可以在ValidatorSummary中显示。
    8. 在Web控件中有6个控件用于在Web窗体中验证用户输入。这些控件被称为验证控件。
    9. RangeValidator(范围验证)控件。
      验证输入是否在一定范围,范围用MaximumValue(最大)和MinimunVlaue来确定。

    二、问答题

    1. 既然能用javasscirpt完成客户端验证,哪么为什么还要验证控件?

    ASP.NET的验证控件是智能化的,它们在客户端和服务器端进行检查。验证控件输出JavaScript代码,这些代码在浏览器中执行,并在页面有非法输入时阻止把信息回发往服务器。而回发发生之后,验证控件又在服务器端再次验证输入。

    为什么验证控件要在服务器端再次检查输入呢?首先,重复检查可以预防欺骗。其次,它可以使那些来自不支持客户端脚本的浏览器的输入接受验证检查。

    在客户端对用户输入进行验证比较好,因为在客户端就可以尽量阻止把一些错误的,将被服务器拒绝信息发往服务器。在客户端进行检查不是一件新事 物,Web编程人员已经使用它好几年了。不幸的是,编写客户端验证脚本需要很多动态HTML和客户端脚本编写方面的知识。而ASP.NET中的验证控件通 过将所需逻辑封装到易用的类中使得客户端验证的实用大大简单了。您只要把验证控件与您想验证的控件相联系就行了,验证控件将完成您设计完成的。

    第四十二章 自定义控件  用户控件

    一、填空题

    1. 在Asp.net中,可供你开发的控件实际上有2种:用户控件自定义控件
    2. 在MyControls项目中添加一个Web自定义控件并命名为MyControl.cs,接着在Web项目中的WebForm1.aspx文件首行添加如下代码(用于向页面注册此控件):
      <%@ Register TagPrefix=”ccs” Namespace=”MyControls” Assembly=”MyControls” %>
    3. Render 方法采用 System.Web.UI.HtmlTextWriter 类型的参数。控件要发送到客户端的 HTML 作为字符串参数传递到 HtmlTextWriter 的 Write 方法。
    4. 用户开发自定义控件并不是一件很困难的事情,只需要定义一个直接或者间接从Control派生的类,并且从些它的Render方法即可。
    5. Asp.net中用户控件的后缀名是.ascx
    6. ASP.NET有很多的优点,其中最明显的就是将业务逻辑代码与显示逻辑代码分开,也就是叫代码隐藏

    二、问答题

    1. 什么是Asp.net中的Control类?

    答:Control 类定义了所有服务器控件共有的属性、方法和事件。其中包括控制控件执行生命周期的方法和事件,以及 ID、UniqueID、Parent、ViewState 和 Controls(子控件集合)等属性。Control 没有用户界面 (UI) 特定的任何功能。如果创作的控件没有提供 UI,或者组合了其他呈现其自己的 UI 的控件,则从 Control 派生。

    1.  什么是Asp.net中的Control类?

    WebControl 类是从 Control 派生的,并为 UI 功能提供附加的属性和方法。这些属性包括 ForeColor、BackColor、Font、BorderStyle、Height 和 Width。WebControl 是 ASP.NET 中 Web 服务器控件系列的基类。如果控件呈现 UI,则从 WebControl 派生。

    第四十三章 Web安全管理功能

    一、填空题

    1. Forms 身份验证,您可以通过该身份验证在您的应用程序中创建登录页并管理身份验证。
    2. ASP.NET 网关守卫包括 UrlAuthorizationModuleFileAuthorizationModule 和主体权限要求和角色检查。
    3. 应用程序级别配置设置保存在 Web.config 文件中,这些文件位于应用程序的虚拟根目录     或者(可选)其他子文件夹中(这些设置有时可以覆盖父文件夹设置)。
    4. 用于 URL 授权的用户和角色是由身份验证设置决定的。
    5. 可以配置应用程序 Web.config 文件中的 <authorization> 元素来控制哪些用户和用户组可以访问应用程序。授权是基于存储在 HttpContext.User 中的 IPrincipal 对象进行的。
    6.  FileAuthorizationModule 类只对所请求的文件执行访问检查,而不对所请求的页面中的代码所访问的文件执行访问检查,但 IIS 对这些文件执行访问检查。

    二、问答题

    1. 什么是身份验证?

    帮助验证用户不是假冒的。应用程序获取用户的凭据(各种形式的标识,如用户名和密码)并通过某些授权机构验证那些凭据。如果这些凭据有效,则将提交这些凭据的实体视为通过身份验证。

    1. 要在项目中禁止用户直接访问.mdb的文件,在配置文件中该怎么写?

    <httpHandlers>

    <add verb=”*” path=”*.mdf” type=”System.Web.HttpForbiddenHandler” />

    </httpHandlers>

    1. 什么是授权?

    通过对已验证身份授予或拒绝特定权限来限制访问权限。

    1. ASP.NET 安全性选项是使用 Web.config 文件中的设置建立的。该文件允许您包括多种安全性选项的预定义元素(包括身份验证节和授权节)。

    <configuration>

    <system.web>

    <authentication mode=“Forms”>

    <forms loginUrl=”login.aspx” />

    </authentication>

    <authorization>

    <deny user=”?” />

    </authorization>

    </system.web>

    </configuration>

    第四十四章 MasterPage

    一、填空题

    1. aspx里申明母版的代码是<%@ Master Language=”C#” AutoEventWireup=”true” CodeFile=”MainMasterPage.master.cs Inherits=”MainMasterPage” %>
    2. 主要包括两个页面:母版页和内容页
    3. Theme文件下可以包含多个.Skin文件,所以可以多种方式组织你的主题文件,所有的主题文件在应用于页面之前会合并。
    4. 要在页面中动态设置主题,必须在页面生命周期Page_Preinit事件之前
    5. 母版页后缀名是.master,其封装网站中的共用元素。
    6. 如果在页面上设置EnableTheming=”false”,主题无效
    7. 母板页(Master Page)上不能设置主题,但是主题可以在内容页面上设置

    二、问答题

    1. StyleSheetTheme是什么

         主题还可以包含级联样式表(.css 文件)。将 .css 文件放在主题目录中时,样式表自动作为主题的一部分应用。使用文件扩展名 .css 在主题文件夹中定义样式表。设置页面的 StyleSheetTheme 属性将主题作为样式表主题来应用。如果您希望能够设置页面上的各个控件的属性,同时仍然对整体外观应用主题,则可以将主题作为样式表主题来应用。 EnableTheming=”false”情况下StyleSheetTheme仍然有效。通过重写属性StyleSheetTheme来动态修改页面 上的主题样式

     

    1. 主题是什么

         主题由一组元素组成:外观、级联样式表 (CSS)、图像和其他资源。主题将至少包含外观。主题是在网站或 Web 服务器上的特殊目录中定义的。主题是一组Web Control的属性设置的集合,提供一种简单的方法设置控件的样式属性。

     

    1. 试下一个简单使用母版的例子。

    <%@ Master Language=”C#” AutoEventWireup=”true” CodeFile=”Site.master.cs” Inherits=”Site” %>

    <html xmlns=”http://www.w3.org/1999/xhtml”>

    <head id=”Head1″ runat=”server”>

    <title>重新过一遍ASP.NET 2.0(C#)</title>

    </head>

    <body>

    <form id=”form1″ runat=”server”>

    <div>

    <asp:ContentPlaceHolder ID=”ContentPlaceHolder1″ runat=”server”>

    </asp:ContentPlaceHolder>

    </div>

    </form>

    </body>

    </html>

    小母版页SmallMasterPage.master:

    <%@ Master Language=”C#” AutoEventWireup=”true” CodeFile=”SmallMasterPage.master.cs” Inherits=”SmallMasterPage” MasterPageFile=”~/MainMasterPage.master”%>

    < asp:Content ID=”SubContent” ContentPlaceHolderID=”ContentPlaceHolder1″ runat=”server”>

    < div>小母版内容< /div>

    < div>

    < asp:contentplaceholder id=”ContentPlaceHolder2″ runat=”server”>

    < /asp:contentplaceholder>

    < /div>

    < /asp:Content>

    第四十五章 Role MemberShip

    一、填空题

    1. ASP.NET Membership的内容是在Forms鉴别完成后填入的。Forms鉴别提供的是一种验证用户的方法,而ASP.NET Membership的作用是表示用户的信息
    2. 通过ASP.NET Membership,我们可以创建用户、删除用户和编辑用户属性。所以这是一个实现登录相关控件的底层框架。
    3. ASP.NET Membership使用的是提供器模式。ASP.NET Framework内包含了两个Membership提供器。
    4. SqlMembershipProvide通过微软SQL Server数据库保存用户信息。
    5. ActiveDirectoryMembershipProvider通过活动目录或活动目录应用程序模式服务器端保存用户信息。
    6. ASP.NET Membership提供的主要API是Membership类,该类支持下列方法:
    7. CreateUser用于创建新用户。
    8. DeleteUser用于删除已存在的用户。
    9. FindUsersByEmail用于获得使用特定电子邮件地址的所有用户。
    10. FindUsersByName用于获得使用特定用户名的所有用户。
    11. GeneratePassword用于产生随机密码。
    12. GetAllUsers用于获得所有用户。
    13. GetNumberOfUsersOnline用于获得所有在线用户的人数。
    14. GetUser用于通过用户名获得用户。
    15. GetUserNameByEmail用于获得使用特定电子邮件地址的那位用户。
    16. UpdateUser用于更新用户信息。
    17. ValidateUser用于验证用户名和密码。
    18. 通过Membership类的方法可以创建自定义的Login控件。
    19. MembershipUser对象用于表示一个特定Web站点成员

    二、问答题

    1. MembershipUser类支持下列方法:
      ChangePassword用于更改当前用户的密码。
      ChangePasswordQuestionAndAnswer用于更改当前用户密码和密码提示问题。
      GetPassword用于获得该用户的密码。
      ResetPassword用于将当前用户的密码重置为随机产生的密码。
      UnlockUser用于解锁被锁定的用户账号。
      使用ASP.NET Framework的两个默认Membership提供器,我们可以有三种方式来保存用户的密码:
      Clear密码以明文方式进行保存。
      Encrypted保存密码之前对其进行加密处理。
      Hashed原始密码不会被保存,而只保存密码的散列值(这是默认设置)。
      要配置如何对密码进行保存,需要设置Web配置文件中的passwordFormat属性。
    2. 属性passwordFormat的默认值是Hashed。在此默认情况下,实际的密码不会保存在应用程序的任何地方。而是根据该密码所生成的散列值被保存了起来。

    第四十六章 Role MemberShip(二)

    一、填空题

    1. Web配置文件包含了一个machineKey节点,当要对密码加密时,必须为其decryptionKey属性提供一个明确的密钥
    2. maxInvalidPasswordAttempts在一定时间间隔内允许用户最多可以输入的错误密码和错误密码提示问题的次数(默认值是5)。
    3. passwordAttemptWindow用于设置以分钟为单位的时间间隔,在该时间间隔内用户输入了过量的错误密码或错误的密码提示问题,那么该账号就将被锁定。
    4. 当一个用户被锁定后,必须调用MembershiptUser.UnlockUser()方法来重新启用该用户的账号。
    5. SQLMembershipProvider是默认的Membership提供器。除非额外进行配置,否则在应用程序的App_Data文件夹中的微软SQL Server精简版数据库ASPNETDB.mdf将用来保存成员信息。该数据库第一次使用在Membership时自动创建。
    6. 在编写XmlMembershipProvider类时,我们应该尽量避免使用诸如SelectSingleNode()这样的方法来避免XPath注入攻击,即时使用这些方法可能会得到更简单和高效的代码。但大多数时候,代码的安全性比快速开发和运行更为重要。
    7. ActiveDirectoryMembershipProvider类支持以下几个操作:

    connectionStringName定义在connectionStrings节点中,用于指定连接到活动目录服务器端的连接的名称。

    connectionUsername用于指定连接到活动目录服务的活动目录账号。

    connectionPassword用于指定连接到活动目录服务的活动目录账号的密码。

    connectionProtection用于指定是否对连接进行加密。可能的取值是None和Secure。

    enableSearchMethods用于使ActiveDirectoryMembershipProvider类可以使用附加方法。在使用Web站点管理工具时必须启用这个属性。

    attributeMapPasswordQuestion用于将Membership安全提示问题映射到活动目录的相应属性上。

    attributeMapPasswordAnswer用于将Membership安全提示问题答案映射到活动目录的相应属性上。

    attributeMapFailedPasswordAnswerCount将Membership MaxInvalidPasswordAttempts属性映射到活动目录的相应属性上。

    attributeMapFailedPasswordAnswerTime用于将Membership PasswordAttemptWindow属性映射到活动目录的相应属性上。

    attributeMapFailedPasswordAnswerLockoutTime用于将Membership PasswordAnswer- AttemptLockoutDuration属性映射到活动目录的相应属性上。

    在完成了以上配置步骤后,就可以像使用SqlMembershipProvider提供器那样来使用ActiveDirectoryMembershipProvider。当使用Login控件时,用户将通过活动目录进行验证。而当使用CreateUserWizard控件时,新用户将被创建到活动目录服务器端中。

    1. 当角色信息缓存在cookie中后,用户的缓存角色和用户的实际角色可能会有不同步的潜在风险。如果在服务器端上更新了用户的角色信息,已经执行的应用程序并不能立即获得以更新的角色。所以需要调用Roles.Deletecookie()方法来删除缓存中的无效cookie信息。
    2. Roles类公开了管理角色的主要API。如果要通过编程方式来创建角色、删除角色或将用户配备到角色上,那么就需要使用Roles类所提供的方法。
    3. Roles类提供了下列方法:

    AddUsersToRole用于将一组用户添加到特定角色中。 AddUsersToRoles用于将一组用户添加到一组角色中。

    1. AddUserToRole用于将某一用户添加到特定角色中。
    2. AddUserToRoles用于将某一用户添加到一组角色中。
    3. CreateRole用于创建新的角色。
    4. DeleteCookie用于删除保存角色信息的cookie。
    5. DeleteRole用于删除特定的角色。
    6. FindUsersInRole用于返回在某一角色中包含了特定用户名的一组用户。
    7. GetAllRoles用于返回所有角色的列表。
    8. GetRolesForUser用于返回某一用户所属的所有角色的列表。
    9. GetUsersInRole用于返回某一角色中的所有用户的列表。
    10. IsUserInRole用于判断某一特定的用户是否是某一特定角色中的成员。
    11. RemoveUserFromRole用于从某一特定角色中移出某一特定的成员。
    12. RemoveUserFromRoles用于从一组角色中移出某一特定成员。
    13. RemoveUsersFromRole用于从某一特定组角色中移出一组成员。
    14. RemoveUsersFromRoles用于从一组角色中移出一组成员。
    15. RoleExists用于判断一个特定的角色是否存在。

    二、问答题

    1. ASP.NET Framework提供了三个角色提供器,分别有什么作用。

    ASP.NET Framework提供了三个角色提供器:

    SqlRoleProvider用于将角色信息保存在微软SQL Server数据库中。

    WindowsTokenRoleProvider使用微软Windows用户组设置来表示角色信息。

    AuthorizationStoreRoleProvider使用授权管理器将角色信息保存在诸如XML文件、活动目录或ADAM中。

    第四十七章 GDI+

    一、填空题

    1. GDI是Graphics Device Interface的缩写
    2. GDI+是Windows XP中的一个子系统,它主要负责在显示屏幕和打印设备输出有关信息,它是一组通过C++类实现的应用程序编程接口。
    3. 图形类Graphics是GDI+接口中的一个核心类,许多绘图操作都可用它来完成。
    4. 在为开发人员提供的二维矢量图形、文本、图像处理、区域、路径以及图形数据矩阵等方面构造了一系列相关的类,如Bitmap(位图类)、 Brush(画刷类)、Color(颜色类)、Font(字体类)、Graphics(图形类)、Image(图像类)、Pen(画笔类)和 Region(区域类)等。其中.
    5. Graphics g = e.Graphics; //创建画板,这里的画板是由Form提供的.
      Pen p = new Pen(Color.Blue, 2);//定义了一个蓝色,宽度2为的画笔
      g.DrawLine(p, 10, 10, 100, 100);//在画板上画直线,起始坐标为(10,10),终点坐标为(100,100)
      g.DrawRectangle(p, 10, 10, 100, 100);//在画板上画矩形,起始坐标为(10,10),宽为100,高为100
      g.DrawEllipse(p, 10, 10, 100, 100);//在画板上画椭圆,起始坐标为(10,10),外接矩形的宽为100,高为100

    二、  问答题

    1. 如何定义了一个红色宽度为2的画笔?

    Pen p = new Pen(Color.Blue, 2);

    1. 试写一个GDI+生成验证码的程序。

    //注:答案仅供参考,不唯一。

    puublic static void general(String sCc)

    {

    Int32 ccLen=sCc.Length;

    String ccFtFm=”Arial”;

    Int32 ccFtSz=12;

    Int32 ccWidth=ccLen*ccFtSz+1;

    Int32 ccHeight=ccFtSz+5;

    using(Bitmap oImg = new Bitmap(ccWidth, ccHeight))

    {

    using(Graphics oGpc=Graphics.FromImage(oImg))

    {

    HatchBrush hBrush = new HatchBrush(HatchStyle.DashedVertical,

    Color.Yellow, Color.Silver);

    oGpc.FillRectangle(hBrush, 0, 0, ccWidth, ccWidth);

    oGpc.DrawString(sCc,new System.Drawing.Font(ccFtFm,ccFtSz, FontStyle.Bold),

    new System.Drawing.SolidBrush(Color.Black),0,0);

    //———————–边框

    Pen blackPen = new Pen(Color.Black, 1);

    oGpc.DrawLine(blackPen, 0, ccHeight, 0, 0); // 左竖线

    oGpc.DrawLine(blackPen, 0,0,ccWidth,0); // 顶横线

    oGpc.DrawLine(blackPen, ccWidth-1,0,ccWidth-1,20); // 右竖线

    oGpc.DrawLine(blackPen, 0, ccHeight-1, ccWidth, ccHeight-1); // 底横线

    writeImg(oImg);

    }

    }

    }

    public static String rndStr(Int32 len)

    {

    String sTemp=”";

    String sForRnd=”0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z”;

    String[] aRnd=sForRnd.Split(‘,’);

    Random oRnd=new Random();

    Int32 iArLen=aRnd.Length;

    for(Int32 i=0; i<len; i++)

    {

    sTemp+=aRnd[oRnd.Next(0,iArLen)];

    }

    return sTemp;

    }

    private static void writeImg(Bitmap oImg)

    {

    using(System.IO.MemoryStream ms=new System.IO.MemoryStream())

    {

    oImg.Save(ms,System.Drawing.Imaging.ImageFormat.Png);

    HttpContext.Current.Response.ClearContent();

    HttpContext.Current.Response.ContentType=”image/Png”;

    HttpContext.Current.Response.BinaryWrite(ms.ToArray());

    }

    }

    第四十八章 应用程序与状态管理

    一、问答题

    1. 简述一下Application对象的作用。

    Application用于保存所有用户的公共的数据信息,如果使用Application对象,一个需要考虑的问题是任何写操作都要在 Application_OnStart事件(global.asax)中完成.尽管使用Application.Lock和 Applicaiton.Unlock方法来避免写操作的同步,但是它串行化了对Application对象的请求,当网站访问量大的时候会产生严重的性 能瓶颈.因此最好不要用此对象保存大的数据集合。

    1. 简述一下Session对象的作用。

    Session用于保存每个用户的专用信息.她的生存期是用户持续请求时间再加上一段时间(一般是20分钟左右).Session中的信息保存在 Web服务器内容中,保存的数据量可大可小.当Session超时或被关闭时将自动释放保存的数据信息.由于用户停止使用应用程序后它仍然在内存中保持一 段时间,因此使用Session对象使保存用户数据的方法效率很低.对于小量的数据,使用Session对象保存还

    1. 简述一下Application和Session状态的区别

    简单的说,Application是应用程序级别的状态存储,Session是会话级别的状态存储。
    另外作用域不同,Application对象针对所有用户都生效Session对象则相反,每个用户都有自己的Session对象,它的生命周期起始于服 务器产生对用户请求页面的响应,终止于用户断开与服务器的连接。由于Application和Session状态都存储在内存中,但是当服务器重新启动 时,保留的状态就会消失了,为了保留其状态,就必须将状态保存到数据库。

    1. 简述一下Cookie对象及其作用。

    Cookie是存储在客户端文件系统的文本文件中或客户端浏览器对话的内存中的少量数据,它主要用来跟踪数据设置。

    Cookie用于保存客户浏览器请求服务器页面的请求信息,程序员也可以用它存放非敏感性的用户信息,信息保存的时间可以根据需要设置.如果没有设 置Cookie失效日期,它们仅保存到关闭浏览器程序为止.如果将Cookie对象的Expires属性设置为Minvalue,则表示Cookie永远 不会过期.Cookie存储的数据量很受限制,大多数浏览器支持最大容量为4096,因此不要用来保存数据集及其他大量数据.由于并非所有的浏览器都支持 Cookie,并且数据信息是以明文文本的形式保存在客户端的计算机中,因此最好不要保存敏感的,未加密的数据,否则会影响网站的安全性。

    1. 简述一下ViewState的特点以及作用。

    ViewState 常用于保存单个用户的状态信息,有效期等于页面的生存期。ViewState容器可以保持大量的数据,但是必须谨慎使用,因为过多使用会影响应用程序的性 能。所有Web服务器控件都使用ViewState在页面回发期音保存自己的状态信息。如果某个控件不需要在回发期间保存状态信息,最好关闭该对象的 ViewState,避免不必要的资源浪费。通过给@Page指令添加“EnableViewState=false”属性可以禁止整个页面的 ViewState。

    1. 简述一下什么隐藏域。

    Hidden控件是属于HTML类型的服务器控件,使用此控件可以实现隐藏域的功能。其实此控件和其它服务器控件的使用没有太大区别,只是它不会在 用户端的浏览器中显示,始终处于隐藏状态。但是每次页面提交的时候,此控件和其它服务器控件一同提交到服务器端,因此在服务器端可以使用Value属性获 取或保存一些数据信息。

    1. 简述一下什么是查询字符串,以及其特点。

    查询字符串的方式是将要传递的值连接在URL后面,然后通过Response.Redirect方法实现客户端的重定向。这种方式可以实现在两个页面之间传递信息。由于URL的长度有一定的限制,因此不能传递太大的信息,加外安全性也不是很好。

    1. 简述一下Cache对象的特点。

    Cache对象用于在HTTP请求间保存页面或数据。该对象的使用可以极大地提高整个应用程序的效率。它允许将频繁访问的大量服务器资源存储在内存 中,当用户发出相同的请求后服务器不再次处理而是将Cache中保存的信息返回给用户,节省了服务器处理请求的时间。此对象的实例是每个应用程序专用的, 其生存期依赖于该应用程序的生存期。当重新启动应用程序时,将重新创建其Cache对象的实例。

    原文链接:http://www.mianwww.com/html/2013/03/17811.html

  • 相关阅读:
    hdu1410 数学题组合概率 log优化
    Triangle
    Unique Paths II
    Unique Paths
    Pascal's Triangle II
    Pascal's Triangle
    Plus One
    Remove Duplicates from Sorted Array II
    Remove Duplicates from Sorted Array
    Remove Element
  • 原文地址:https://www.cnblogs.com/xwj517537691/p/3083887.html
Copyright © 2011-2022 走看看