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.请简述面向对象的几个特征的功能和意义。
封装:保证对象自身数据的完整性、安全性。
继承:建立类之间的关系,实现代码复用,方便系统的扩展。
多态:相同的方法调用可实现不同的实现方式。
有了多态,可以实现不同的方法功能,
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.请简述面向对象的几个特征的功能和意义。
封装:保证对象自身数据的完整性、安全性。
继承:建立类之间的关系,实现代码复用,方便系统的扩展。
多态:相同的方法调用可实现不同的实现方式。
有了多态,可以实现不同的方法功能,
相关文章推荐
- WIN2003 IIS6.0+PHP+ASP+MYSQL优化配置
- Asp.net处理超链接的乱码
- [ASP.NET] 实现Label自动换行 - An…
- Asp.net鼠标变手型
- Asp.net的一些小重点
- Asp.net错误处理机制
- AspNetPager控件的分页与排序
- AspNetPager控件的分页与排序
- Asp.net配置文件中数据库的连接
- asp.net MVC EF Where 过滤条件怎么写
- Asp.net 甘特图数据导出Project(.mpp)文件
- ASP.NET-服务器客户端的信息保持
- asp.net-页面生命周期
- ASP.NET-优化websit
- ASP.NET-Session cooike
- ASP.NET-post、get的区别
- ASP.NET-关于Global.asax的作用
- ASP.NET-POSTBACK是什么
- ASP.NET-入门
- asp.net原理