• Asp.Net部分面试题


    HTML、javascript部分

    1. jQuery的美元符号$有什么作用?

    答:个人理解:$指代jquery对象,拥有jquery对象所有的属性和成员

          网友理解:在Jquery中,$是JQuery的别名,所有使用$的地方也都可以使用JQuery来替换。

    2. body中的onload()函数和jQuery中的document.ready()有什么区别?

    答:个人理解:onload()指浏览器在运行致onload()方法时就会立即执行;ready()指提前准备好加载环境,触发事件才执行。

         网友理解:

    • 1).执行时间 
    •         window.onload必须等到页面内包括图片的所有元素加载完毕后才能执行。 
    •         $(document).ready()是DOM结构绘制完毕后就执行,不必等到加载完毕。 
    • 2).编写个数不同
    •          window.onload不能同时编写多个,如果有多个window.onload方法,只会执行一个 
    •          $(document).ready()可以同时编写多个,并且都可以得到执行 
    • 3.简化写法
    •          window.onload没有简化写法 
    •          $(document).ready(function(){})可以简写成$(function(){});

    3. jQuery中有哪几种类型的选择器?

    答:个人理解:类选择器,ID选择器,标签选择器

          网友理解:

         

    (1)基本
    #id
    element
    .class
    *
    selector1,selector2,selectorN

    (2)层次选择器:
    ancestor descendant
    parent > child
    prev + next
    prev ~ siblings

    (3)基本过滤器选择器
    :first
    :last
    :not
    :even
    :odd
    :eq
    :gt
    :lt
    :header
    :animated

    (4)内容过滤器选择器
    :contains
    :empty
    :has
    :parent

    (5)可见性过滤器选择器
    :hidden
    :visible

    (6)属性过滤器选择器
    [attribute]
    [attribute=value]
    [attribute!=value]
    [attribute^=value]
    [attribute$=value]
    [attribute*=value]
    [attrSel1][attrSel2][attrSelN]

    (7)子元素过滤器选择器
    :nth-child
    :first-child
    :last-child
    :only-child

    (8)表单选择器
    :input
    :text
    :password
    :radio
    :checkbox
    :submit
    :image
    :reset
    :button
    :file
    :hidden

    (9)表单过滤器选择器
    :enabled
    :disabled
    :checked
    :selected

    4. 请使用jQuery将页面上的所有元素边框设置为2px宽的虚线?

    答:$("body").attr("border","2px dot black")

    5. 如何使用jQuery实现点击按钮弹出一个对话框?

    $("button").bind("click",function(){

    alert("Hello World!");

    });

    6. Jquery的Ajax方法有option哪些参数?

     答:url、data、type、async、success、error

    7. 谈谈innerHTML outerHTML innerText之间的区别?

    答:个人理解:innerHTML指返回当前(不包含)标签元素内的所有HTML元素;outerHTML与innerHTML唯一区别是包含当前标签;innerText指返回当前标签内部的所有文本信息。

    8. javascript是面向对象的,怎么体现javascript的继承关系?

    答:个人理解:javascript通过prototype原型来继承

         网友理解:

    s由于是prototype的对象模型,没有严格意义上的类class。全部都是对象Object
    要实现继承,可以先
    //创建一个父对象
    OldObject=function(){
    this.a="属性1"
    };
    //复制出一个新对象,新对象里面已经具有旧对象的内容
    NewObject=new OldObject();
    //新增些内容,扩展新对象
    NewObject.b="属性2";
    NewObject.func=function(){
    //新方法1
    }
    //新对象具有旧对象的属性
    alert(NewObject.a);

    9. form中的input可以设置为readonly和disable,请问2者有什么区别?

    答:个人理解:readonly指设置标签为只读,可用;disable指设置标签为不可用。

          网友理解:如果一个输入项的disabled设为true,则该表单输入项不能获取焦点,用户的所有操作(鼠标点击和键盘输入等)对该输入项都无效,最重要的一点是当提交表单时,这个表单输入项将不会被提交。而readonly只是针对文本输入框这类可以输入文本的输入项,如果设为true,用户只是不能编辑对应的文本,但是仍然可以聚焦焦点,并且在提交表单的时候,该输入项会作为form的一项提交。 

     

    10. js中的3种弹出式消息提醒(警告窗口,确认窗口,信息输入窗口)的命令式什么?

    答:alert、confirm、prompt

    11. form中的input有哪些类型?

    答:text、button、checkbox、radio、reset

    12. javascript的常用对象有哪些?

    答:String、window、Date、Array

    13. 说说服务器端控件(gridview formview等)与客户端控件(easyui,jqueryui等)的区别?

    答:个人理解:服务器端控件需要注册,可以直接在后台cs文件调用控件的属性和方法,主要使用C#语言实现,会产生冗余代码,隐藏文件;客户端控件,直接在页面上调用控件的属性和方法,使用javascript语言实现

    C#部分

    1. 列举Ado.net下的五大数据库对象;

    答:Connection(连接数据库)
         Command (执行T-SQL语句)
         DataAdapter (用户填充DataSet,断开模式)
         DataReader(读取数据库,一种只读模式,只向前的)
         DataSet(数据集,好比电脑的内存)

    2. 经常使用哪些泛型集合;

    泛型最常见的用途是泛型集合,命名空间System.Collections.Generic 中包含了一些基于泛型的集合类,使用泛型集合类可以提供更高的类型安全性,还有更高的性能,避免了非泛型集合的重复的装箱和拆箱。

          很多非泛型集合类都有对应的泛型集合类,我觉得最好还是养成用泛型集合类的好习惯,他不但性能上好而且 功能上要比非泛型类更齐全。下面是常用的非泛型集合类以及对应的泛型集合类:

        

    非泛型集合类 泛型集合类
    ArrayList List<T>
    HashTable DIctionary<T>
    Queue Queue<T>
    Stack Stack<T>
    SortedList SortedList<T>

                我们用的比较多的非泛型集合类主要有  ArrayList类 和 HashTable类,其中当我们经常性的操作 数据信息时往往用HashTable 来存储将要写入到数据库或者返回的信息,在这之间要不断的进行类型的转化,他给我们的帮助应该是非常大的,如果我们操纵的数据类型相对确定的化  用Dictionary<TKey,TValue>集合类来存储数据就方便多了,例如我们需要在电子商务网站中存储用户的购物车信息( 商品名,对应的商品个数)时,完全可以用Dictionary<string,int > 来存储购物车信息,而不需要任何的类型转化。

    3. 说明关键字 Func<T1>, Action<T1>代表什么?

    答:表示声明参数类型为T1的两种委托

    4. Var 关键字的作用?

    答:个人理解:弱类型,起到声明变量的作用;

          网友理解:var关键字是C# 3.0开始新增的特性,称为推断类型 . 可以赋予局部变量推断“类型”,var 不是显式类型。var 关键字指示编译器根据初始化语句右侧的表达式推断变量的类型。推断类型可以是内置类型、匿名类型、用户定义类型、.NET Framework 类库中定义的类型或任何表达式。

    5. 什么是扩展方法?

     答:扩展方法使你能够向现有类型“添加”方法(包括你自定义的类型和对象噢),而无需创建新的派生类型、重新编译或以其他方式修改原始类型。扩展方法是一种特殊的静态方法,但是可以像扩展类型上的实例方法一样进行调用。对于用C#编写的客户端代码,调用扩展方法与调用在类型中实际定义的方法之间没有明显的差异。

    6. 说出 List<string> ls.Where, linq Where扩展方法的签名。

     Where(Function<string,bool> param)

    7. 说出5个以上Linq扩展方法?

    答:Max、Min、OrderBy、Count、Any、Average、Distinct

    8. 分别列举C#持久层、IOC、AOP有哪些典型的类库

     答:持久层:llblgen、nhibernate、entity framework

       IOC:Unity、Spring.NET

      Aop:Unity

    9. 说明Asp.net 页面Page的生命周期?

    10. 说明HttpHandler和HttpModule的区别,以及它们的典型应用场景。

    答:个人理解:HttpHandler主要用于指定文件的请求的访问;HttpModule用于所有的请求都会执行到。

    数据库部分

    (有数据库能力者建议完成题目2,3)

    1. 什么是DDL ,DML和DCL?

    DML(data manipulation language):
           它们是SELECT、UPDATE、INSERT、DELETE,就象它的名字一样,这4条命令是用来对数据库里的数据进行操作的语言
    DDL(data definition language):
           DDL比DML要多,主要的命令有CREATE、ALTER、DROP等,DDL主要是用在定义或改变表(TABLE)的结构,数据类型,表之间的链接和约束等初始化工作上,他们大多在建立表时使用
    DCL(Data Control Language):
           是数据库控制功能。是用来设置或更改数据库用户或角色权限的语句,包括(grant,deny,revoke等)语句。在默认状态下,只有sysadmin,dbcreator,db_owner或db_securityadmin等人员才有权力执行DCL

    2. MS Sql Server有哪些基本数据类型?

    (来源于SQL查询分析器)

      view plaincopy to clipboardprint?

      bigint 从 -2^63 到 2^63-1 之间的 integer (整数)数据

      binary 定长的binary数据,最长为8,000字节

      bit integer数据,值为1或0

      char 定长的非unicode character数据,长度为8,000个字符

      cursor 含有对游标的引用的变量或存储过程OUTPUT参数所采用的MS SQL Server 2000系统数据类型

      datetime date和time数据,从1753年1月1日到9999年12月31日

      decimal 定点精度和小数的numeric数据,从-10^38-1到10^38-1之间

      float 浮点精度数字数据,从-1.79E+308到1.79E+308之间

      image 长度可变的binary数据,最长为2^31-1字节

      int 从-2^31到2^31-1之间的integer(整数)数据

      money monetary数据值,从-2^63到2^63-1,准确度为货币单位的千分之一

      nchar 定长的unicode数据,长度为4,000个字符

      ntext 长度可变的unicode数据,最长为2^30-1个字符

      numeric decimal的同义词

      nvarchar 长度可变的unicode数据,最长为4,000字符

      real 浮点精度数字数据,从-3.40E+38到3.40E+38之间

      rowversion 数据库范围内的唯一号

      smalldatetime date和time数据,从1900年1月1日到2079年6月6日

      smallint 从-2^15到2^15-1之间的integer数据

      smallmoney monetary数据值,-214,748.3648到+214,748.3647之间

      sql_variant 可存储多种SQL Server支持的数据类型的值的MS SQL Server 2000系统数据类型,

      但不存储text, ntext, timestamp和sql_variant类型的值

      sysname 系统提供的用户定义的数据类型,为nvarchar(128)的同义词

      table 一种特殊的数据MS SQL Server 2000系统数据类型,可用于为以后进行处理而存储结果集

      text 长度可变的非unicode数据,最长为2^31-1个字符

      timestamp 数据库范围内的唯一号

      tinyint 从0到255之间的integer数据

      uniqueidentifier全局唯一标识符(GUID)

      varbinary 长度可变的binary数据,最长为2^31-1字节

      varchar 长度可变的非unicode数据,最长为8,000个字符

    3. MS Sql Server有哪些常用日期时间处理函数?

    日期和时间函数

    函数名称

    参数

    示例

    说明

    dateadd

    (日期部分,数字,日期)

    select dateadd(year,45,'1990-12-11')

    返回 2035-12-11 00:00:00.000

    select dateadd(month,45,'1990-12-11')

    返回1994-09-11 00:00:00.000

    select dateadd(mm,45,'1990-12-11')

    返回1994-09-11 00:00:00.000

    select dateadd(qq,12,'1990-12-11')

    返回1993-12-11 00:00:00.000

    select dateadd(hh,12,'1990-12-11')

    返回1990-12-11 12:00:00.000

    select dateadd(yy,-12,'1990-12-11')

    返回1978-12-11 00:00:00.000

    返回给指定日期加上一个时间间隔后的新的日期值。

    数字:用于与指定的日期部分相加的值。如果指定了非整数值,则将舍弃该值的小数部分,舍弃时不遵循四舍五入。

    日期:指定的原日期

    在此函数中 dw,dy,dd效果一样都表示天

    datediff

    (日期部分,开始日期,结束日期)

    select datediff(yy,'1990-12-11','2008-9-10')

    返回 18

    select datediff(mm,'2007-12-11','2008-9-10')

    返回 9

    返回两个指定日期的指定日期部分的差的整数值。

    在计算时由结束日期减去开始日期

    在此函数中 dw,dy,dd效果一样都表示天

    datename

    (日期部分,日期)

    select datename(mm,'2007-12-11')返回12

    select datename(dw,'2007-12-11')返回星期二

    select datename(dd, '2007-12-11')返回11

    返回表示指定日期的指定日期部分的字符串。

    dw表示一星期中星期几,wk表示一年中的第几个星期

    dy表示一年中的第几天

    datepart

    (日期部分,日期)

    select datepart(mm,'2007-12-11')返回12

    select datepart(dw,'2007-12-11')返回3

    select datepart(dd, '2007-12-11')返回11

    返回表示指定日期的指定日期部分的整数。

    wk表示一年中的第几个星期

    dy表示一年中的第几天,

    dw表示一星期中星期几,返回整数默认1为星期天

    getdate

    无参数

    select getdate()

    返回2009-04-28 18:57:24.153

    返回当前系统日期和时间。

    day

    (日期)

    select day('2007-12-11')返回11

    返回一个整数,表示指定日期的天的部分。

    等价于datepart(dd, 日期)

    month

    (日期)

    select month('2007-12-11')返回12

    返回一个整数,表示指定日期的月的部分。

    等价于datepart(mm, 日期)

    year

    (日期)

    select year('2007-12-11')返回2007

    返回一个整数,表示指定日期的年的部分。

    等价于datepart(yy, 日期)

    getutcdate

    无参数

    select getutcdate()

    返回2009-04-28 10:57:24.153

    返回表示当前的 UTC(世界标准时间)时间。即格林尼治时间(GMT)

    4. SQLSERVER服务器中,给定表 table1 中有两个字段 ID、LastUpdateDate,ID表示更新的事务号, LastUpdateDate表示更新时的服务器时间,请使用一句SQL语句获得最后更新的事务号

    5. 写出一条Sql语句:取出表A中第31到第40记录(SQLServer,以自动增长的ID作为主键,注意:ID可能不是连续的。 如果应用程序变慢,代码已优化,数据库已建索引,还有有哪些优化方案?

    答:

    1)、select top 10 * from a
    where id not in (select top 30 id from a order by id)
    order by id
    2)、
    select * from
    (
    select productid, ROW_NUMBER() OVER(ORDER BY productid asc) as rowid
    from Production.Product
    )T
    where T.rowid>30 and rowid<=40

    1.WHERE子句中的连接顺序
    ORACLE采用自下而上的顺序解析WHERE子句,根据这个原理,表之间的连接必须写在其他WHERE条件之前, 那些可以过滤掉最大数量记录的条件必须写在WHERE子句的末尾。
    
    2.SELECT子句中避免使用 ' * '
    当你想在SELECT子句中列出所有的COLUMN时,使用动态SQL列引用 '*' 是一个方便的方法。不幸的是,这是一个非常低效的方法。实际上,ORACLE在解析的过程中, 会将'*' 依次转换成所有的列名, 这个工作是通过查询数据字典完成的, 这意味着将耗费更多的时间。
    
    3.减少访问数据库的次数
    当执行每条SQL语句时,ORACLE在内部执行了许多工作:解析SQL语句,估算索引的利用率,绑定变量,读数据块等等。由此可见,减少访问数据库的次数,就能实际上减少ORACLE的工作量。
    
    4.使用DECODE函数来减少处理时间
    使用DECODE函数可以避免重复扫描相同记录或重复连接相同的表。
    
    5.整合简单,无关联的数据库访问
    如果你有几个简单的数据库查询语句,你可以把它们整合到一个查询中(即使它们之间没有关系)
    
    6.删除重复记录
    7.用TRUNCATE替代DELETE
    当删除表中的记录时,在通常情况下, 回滚段(rollback segments ) 用来存放可以被恢复的信息。 如果你没有COMMIT事务,ORACLE会将数据恢复到删除之前的状态(准确地说是恢复到执行删除命令之前的状况)。
    而当运用TRUNCATE时, 回滚段不再存放任何可被恢复的信息。当命令运行后,数据不能被恢复。因此很少的资源被调用,执行时间也会很短。
    
    8.计算记录条数
    和一般的观点相反,count(*) 比count(1)稍快,当然如果可以通过索引检索,对索引列的计数仍旧是最快的。例如 COUNT(EMPNO)
    
    9.用Where子句替换HAVING子句
    避免使用HAVING子句,HAVING 只会在检索出所有记录之后才对结果集进行过滤。 这个处理需要排序,总计等操作。如果能通过WHERE子句限制记录的数目,那就能减少这方面的开销。
    
    Given Query
    Alternative
    SELECT d.dname, AVG (e.sal)
    FROM emp e, dept d
    WHERE e.deptno = d.deptno
    GROUP BY d.dname
    HAVING dname != 'RESEAECH'
    AND dname != 'SALES';
    SELECT d.dname, AVG (e.sal)
    FROM emp e, dept d
    WHERE e.deptno = d.deptno
    AND dname != 'RESEAECH'
    AND dname != 'SALES' 
    GROUP BY d.dname;
     
    
    10.减少对表的查询
    在含有子查询的SQL语句中,要特别注意减少对表的查询。
    
    11.通过内部函数提高SQL效率。
    12.使用表的别名(Alias)
    当在SQL语句中连接多个表时, 请使用表的别名并把别名前缀于每个Column上。这样一来,就可以减少解析的时间并减少那些由Column歧义引起的语法错误。
    
    13.用EXISTS替代IN
    在许多基于基础表的查询中,为了满足一个条件,往往需要对另一个表进行联接。在这种情况下,使用EXISTS(或NOT EXISTS)通常将提高查询的效率。
    
    14.用NOT EXISTS替代NOT IN
    在子查询中,NOT IN子句将执行一个内部的排序和合并。 无论在哪种情况下,NOT IN都是最低效的 (因为它对子查询中的表执行了一个全表遍历)。为了避免使用NOT IN ,我们可以把它改写成外连接(Outer Joins)或NOT EXISTS。
    
    SELECT ename
    FROM emp E
    WHERE EXISTS (SELECT 'X'
    FROM dept
    WHERE deptno = E.deptno
    AND dname = 'ACCOUNTING');
    SELECT ename
    FROM emp E
    WHERE deptno IN (SELECT deptno
    FROM dept
    WHERE deptno = E.deptno
    AND dname = 'ACCOUNTING');
    SELECT ename
    FROM dept D, emp E
    WHERE E.deptno = D.deptno
    AND D.dname = 'ACCOUNTING';
    
    15.用表连接替换EXISTS
    通常来说 , 采用表连接的方式比EXISTS更有效率
    
    16.用EXISTS替换DISTINCT
    当提交一个包含一对多表信息(比如部门表和雇员表)的查询时,避免在SELECT子句中使用DISTINCT。 一般可以考虑用EXIST替换
    
    
    Given Query
    Alternative
    SELECT DISTINCT d.deptno, d.dname
    FROM dept D,
    emp E
    WHERE D.deptno = E.deptno;
    

      

    题目1为管理岗位业务培训信息,建立3个表: S (S#,SN,SD,SA) S#,SN,SD,SA 分别代表学号、学员姓名、所属单位、学员年龄 C (C#,CN ) C#,CN 分别代表课程编号、课程名称 SC ( S#,C#,G ) S#,C#,G 分别代表学号、所选修的课程编号、学习成绩 1. 使用标准SQL语句查询选修课程名称为 税收基础 的学员学号和姓名 2. 使用标准SQL语句查询选修课程编号为’C2’的学员姓名和所属单位

    3. 使用标准SQL语句查询不选修课程编号为’C5’的学员姓名和所属单位

    4. 使用标准SQL嵌套语句查询选修全部课程的学员姓名和所属单位 5. 查询选修了课程的学员人数

    6. 查询选修课程超过5门的学员学号和所属单位 题目2,已知关系模式: S (SNO,SNAME) 学生关系。SNO 为学号,SNAME 为姓名 C (CNO,CNAME,CTEACHER) 课程关系。CNO 为课程号,CNAME 为课程名,CTEACHER 为任课教师 SC(SNO,CNO,SCGRADE) 选课关系。SCGRADE 为成绩 1. 找出没有选修过“李明”老师讲授课程的所有学生姓名

    2. 列出有二门以上(含两门)不及格课程的学生姓名及其平均成绩

    3. 列出既学过“1”号课程,又学过“2”号课程的所有学生姓名

    4. 列出“1”号课成绩比“2”号同学该门课成绩高的所有学生的学号

    5. 列出“1”号课成绩比“2”号课成绩高的所有学生的学号及其“1”号课和“2”号课的成绩 题目3: ====== 有如下表记录: ID Name EmailAddress LastLogon 100 test4 test4@yahoo.cn 2007-11-25 16:31:26 13 test1 test1@yahoo.cn 2007-3-22 16:27:07 19 test1 test1@yahoo.cn 2007-10-25 14:13:46 42 test1 test1@yahoo.cn 2007-11-20 14:20:10 45 test2 test2@yahoo.cn 2007-4-25 14:17:39 49 test2 test2@yahoo.cn 2007-5-25 14:22:36 用一句sql查询出每个用户最近一次登录的记录(每个用户只显示一条最近登录的记录)

  • 相关阅读:
    初学者对Python的认知
    html5中table标签的延伸
    表格和表单
    html5行级标签
    块级标签
    分布式NoSQL数据库Cassandra集群搭建
    Grafana 邮箱报警测试之Failed to send alert notifications问题解决
    Elasticsearch启动之Exception in thread "main" java.nio.file.AccessDeniedException问题解决
    Mysql 主从同步之Got fatal error 1236 from master when reading data from binary log: 'Could not find first log file name in binary log index file'问题解决
    Filebeat (7.3.2)启动脚本
  • 原文地址:https://www.cnblogs.com/renzaijianghu/p/4147956.html
Copyright © 2020-2023  润新知