1、.net中读写数据库需要用到哪些类?他们的作用分别是什么?
答: Command类 执行语句命令
DataSet类 数据存储器
DataAdapter类 数据的集合,用于填充。
2、DataSet 与sqldatareader 有什么区别?
答:本质上:sqldatareader 是只读的,DataSet 是可读可写的
从读取速度上讲,sqldatareader 的速度要快一些。
举个例子:
sqldatareader 方式只是节约内存,一边读取数据一边处理数据,如果处理一条数据消耗时间约1s,那么处理10条数据就是10s;在这10s内如果有第二个人同时访问这个数据库就打不开了,必须关闭sqldatareader 才可以另行打开;也就是说:一个SqlConnection对象,在使用sqldatareader时,不能进行其他的访问操作。多个人访问数据库时,他们使用的是不同的SqlConnection对象,所以不会互相影响的。一个人访问数据库时,可以定义多个SqlConnection对象,来同时进行多个sqldatareader的读取操作
DataSet 方式则可以理解通过sqldataAdapt检索、更新、加载一些数据然后填充(fill()方法)到DataSet 数据存储器中,DataSet 也就是存放数据的。
3、什么叫应用程序域?
答:也就是一种边界(域:和数学中的域同一个概念),它由公共语言运行库围绕同一应用程序范围内创建的对象建立(即,从应用程序入口点开始,沿着对象激活的序列的任何位置)。应用程序域有助于将在一个应用程序中创建的对象与在其他应用程序中创建的对象隔离,以使运行时行为可以预知。在一个单独的进程中可以存在多个应用程序域。
4、什么是受管制的代码?
答:在.net环境中运行的代码都称之为受管制的代码;在.net环境之外,在Windows上运行的代码称之为不受管制的代码。
5、override与重载的区别
答:override 是进行基类中函数的重写。重载是方法名相同,参数类型或参数个数,参数顺序不同。
6、string和stringbuild
答:string是固定的,stringbuild是可变的。
7、一列数的规则如下: 1、1、2、3、5、8、13、21、34...... 求第30位数是多少, 用递归算法实现。
答:方法:
public static int Foo(int i)
{
if (i <= 0)
return 0;
else if(i > 0 && i <= 2)
return 1;
else return Foo(i -1) + Foo(i - 2);
}
8、请编程实现一个冒泡排序算法?
答:方法:
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 ; |
} |
} |
} |
9、求以下表达式的值,写出您想到的一种或几种实现方法: 1-2+3-4+……+m
答:
方法一:
int sum=0;
bool flag=true;
for(int i=1;i<=m;i++)
{
if(flag)
sum+=i;
else
sum-=i;
flag=!flag;
}
return sum;
方法二:
if((m%2)>0)
return m/2;
else
return -m/2;
}
10、什么是事物?
答:是作为单个逻辑工作单元执行的一系列操作,这些操作作为一个整体一起向系统提交,要么都执行、要么都不执行, 事务是一个不可分割的工作逻辑单元。
11、什么是存储过程、触发器?
答:存储过程:一组为了完成特定功能的sql语句集,经编译后存储在数据库中。也就是一段用sql语句编写的程序。可以接收参数,执行,然后给出查询的结果。存储过程的好处是,在一定程度上封装了一些sql语句,便于程序重复的调用。而不用把sql语句写的到处都是,另外,因为是预先编译过的,所以效率也较普通的sql要快一些。
触发器:一种特殊的存储过程,它在试图更改触发器所保护的数据时自动执行。
还可参照http://www.cnblogs.com/tuyile006/archive/2007/03/20/681258.html,这里面的面试题挺全面的,大部分也都在里面了。
如果对付面试,平时最好也看一些有关智力方面的题。有可能会用上的。