Asp.net面试题复习

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.请简述面向对象的几个特征的功能和意义。
封装:保证对象自身数据的完整性、安全性。
继承:建立类之间的关系,实现代码复用,方便系统的扩展。
多态:相同的方法调用可实现不同的实现方式。
 
有了多态,可以实现不同的方法功能,
 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值