您的位置:首页 > 编程语言 > ASP

Asp.net面试题复习

2016-03-21 10:49 369 查看
1.CTS,CLS,CLR

CTS:Common Type System,通用类型系统。

CLS:Common Language Specification,公共语言规范。

CLR:Common Language Runtime,公共语言进行时。

2..net中读写数据库需要用到那些类?他们的作用?

DataSet:数据存储器。

DataCommand:执行语句命令。

DataAdapter:数据的集合,用于填充。

附加一个根据SQL判断有没有数据的小例子

/// <summary>

  ///
根据传来的条件查询该项是否有内容,有就返回true

  ///
</summary>

  /// <param
name="sql"></param>

  ///
<returns></returns>

  public bool IfEmpty(string
sql)

  {

   //根据传来的条件查询该项是否有内容,有就返回true

   try

   {

    bool
ifreader;

    SqlConnection
constr = this.CreateCon();

    SqlCommand
commstr = new SqlCommand(sql, constr);

    commstr.Connection.Open();

    SqlDataReader
mydr = commstr.ExecuteReader();

    if
(mydr.Read())

    {

     ifreader
= true;

    }

    else

    {

     ifreader
= false;

    }

    commstr.Connection.Close();

    commstr.Dispose();

    return
ifreader;

   }

   finally

   {

    CloseConnection();

   }

  }

3.返回查询语句中指定的查询项

   ///
<summary>

  /// 返回查询语句中指定的查询项

  ///
</summary>

  /// <param
name="sql">SQL语句</param>

  /// <param
name="num">查询项中的位置</param>

  ///
<returns></returns>

  public string GetOneData(string
sql, int num)

  {

   string
returnstr;

   try

   {

    OpenConnection();

    SqlCommand
comm = new SqlCommand(sql, conn);

    SqlDataReader
dr = comm.ExecuteReader();

    if
(dr.Read())

    {

     
returnstr =
dr.GetValue(num).ToString();
    }

    else

    {

     returnstr
= "没有此记录";

    }

    return
returnstr;

   }

   finally

   {

    CloseConnection();

   }

  }

4.可以用Type.IsValueType属性来判断一个类型是否为值类型:

TestType testType = new TestType ();

if (testTypetype.GetType().IsValueType)

{

Console.WriteLine("{0} is value type.", testType.ToString());

}

5.private protected public internal修饰符的访问权限

private: 私有成员,只有在类的内部可以访问。

protected: 保护成员,本类以及继承类中可以访问。

public: 公共成员,完全公开,没有访问限制。

internal: 在同一命名空间中可以访问。

6.写出一条Sql语句: 取出表A中第31到第40记录(SQLServer,
以自动增长的ID作为主键,  注意:ID可能不是连续的。)

select top 10 * from A where id not in (select top 30 id from
A)

解2: select top 10 * from A where id > (select
max(id) from (select top 30 id from A )as A)

7.列举ASP.NET 页面之间传递值的几种方式。

答. 1.使用QueryString,

     
源页面

     
string url;

      
url="anotherwebform.aspx?name=" + TextBox1.Text

      
Response.Redirect(url);

     
目标页面

      
Label1.Text=Request.QueryString["name"];

    
2.使用Session变量

     
源页面

     
Session["name"]=TextBox1.Text;

     
Session["email"]=TextBox2.Text;

     
Server.Transfer("anotherwebform.aspx");

    
目标页面

     
Label1.Text=Session["name"].ToString();

     
Label2.Text=Session["email"].ToString();

     
Session.Remove("name");

     
Session.Remove("email");

    
3.使用Server.Transfer

     
源页面代码:

    public
string Name

{

get {

return TextBox1.Text; }

}

//然后调用Server.Transfer方法

private void Button1_Click

(object sender, System.EventArgs e)

{

Server.Transfer("anotherwebform.aspx");

}

    
目标页面代码:

private void Page_Load

(object sender, System.EventArgs e)

{  

WebForm1 wf1;

wf1=(WebForm1)Context.Handler;

Label1.Text=wf1.Name;

}
8.Post与Get的区别

 很多人都分不清GET与POST的区别,以及什么时候用GET?什么时候用POST?

GET和POST两种方法都是将数据送到服务器,但你该用哪一种呢?

HTTP标准包含这两种方法是为了达到不同的目的。POST用于创建资源,资源的内容会被编入HTTP请示的内容中。例如,处理订货表单、在数据库中加入新数据行等。

当请求无副作用时(如进行搜索),便可使用GET方法;当请求有副作用时(如在数据库添加数据行),则用POST方法。一个比较实际的问题是:GET方法可能会产生很长的URL,或许会超过某些浏览器与服务器对URL长度的限制。

若符合下列任一情况,则用POST方法:

请求的结果有持续性的副作用,例如,数据库内添加新的数据行。    

若使用GET方法,则表单上收集的数据可能让URL过长。    

要传送的数据不是采用7位的ASCII编码。

 

    若符合下列任一情况,则用GET方法: 

    

请求是为了查找资源,HTML表单数据仅用来帮助搜索。    

请求结果无持续性的副作用。    

收集的数据及HTML表单内的输入字段名称的总长不超过1024个字符。

1.Post传输数据时,不需要在URL中显示出来,而Get方法要在URL中显示。

2.Post传输的数据量大,可以达到2M,而Get方法由于受到URL长度的限制,只能传递大约1024字节.
   
3.Post顾名思义,就是为了将数据传送到服务器段,Get就是为了从服务器段取得数据
9。DataReader和DataSet的异同

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

DataSet则是将数据一次性加载在内存中.抛弃数据库连接..读取完毕即放弃数据库连接..因为DataSet将数据全部加载在内存中.所以比较消耗内存...但是确比DataReader要灵活..可以动态的添加行,列,数据.对数据库进行回传更新操作...
10.请简述面向对象的几个特征的功能和意义。
封装:保证对象自身数据的完整性、安全性。
继承:建立类之间的关系,实现代码复用,方便系统的扩展。
多态:相同的方法调用可实现不同的实现方式。
 
有了多态,可以实现不同的方法功能,
 
 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: