面试题(数据访问)

来源:互联网 发布:windows iso怎么下载 编辑:程序博客网 时间:2024/06/07 02:24

以下内容转载自C#与.net面试宝典

1.ADO.NET基础概念

1.1 ADO.NET与数据库的关系

解答:ADO.NET是专门为帮助开发人员建立在Intranet(内网)或Internet(外网)上使用的高效多层数据库应用程序设计的。ADO.NET提供了平台互用性和可伸缩的数据访问,允许和不同类型的数据源以及数据库进行交互。它是Windows平台下系统访问关系数据最成熟的技术之一,已经在企业信息系统的开发中得到了广泛的使用。


1.2 ADO.NET支持多少种数据源

参考:9.1.3 ADO.NET支持哪几种数据源

解答:ADO.NET提供5中数据源,分别是SQL Server数据源,Oracle数据源,OLE DB提供商,ODBC提供商,XML数据源


1.3 如何提高数据库连接的使用效率?

在ADO.NET选择不同的数据库连接模式时,尽量选择各自数据库对应的连接串。因为各个支持ADO.NET的厂商会对支持的数据库引擎做最优处理。应尽量避免使用ODBC数据源,虽然ODBC兼容市面上大多数的数据库,但是它是以牺牲性能为代价,所以在数据库连接时尽量避免使用。


1.4 如何安全的管理连接字符串?

使用加密算法将connectionString里的值加密,这样就解决了配置文件里数据库连接字符串明文的问题了。


1.5 using语句管理数据库连接有什么作用?

using块相当于try...finally构造,在该构造中try使用资源,finally释放资源。使用using语句可以保证资源的释放,即使发生异常也是如此。


2.数据库连接与访问

2.1 ADO.NET如何控制数据库连接池
解答:当调用ADO.NET的connection.open对象后,池进程就会检查池中是否有可用的连接,如果某个池连接可用,会将该连接返回给调用者,而不是打开新连接。应用程序在该连接上调用close方法时,池进程会返回该连接池中,而不是真正的关闭连接。连接返回连接池后,会再下一次调用open方法时重复使用。

2.2 ADO.NET如何动态的执行SQL语句?
解答:在.net的System.Data.Sqlclient命名空间下的sqlCommand对象提供了很多简单高效的执行动态SQL语句和存储过程的方法,其中常用的是ExecuteNonQuery(),ExecuteScalar(),ExecuteReader()等。


2.3 解释ADO.NET事务处理的作用?
分析:
一、事务概念
    事务是一种机制、是一种操作序列,它包含了一组数据库操作命令,这组命令要么全部执行,要么全部不执行。因此事务是一个不可分割的工作逻辑单元。在数据库系统上执行并发操作时事务是作为最小的控制单元来使用的。这特别适用于多用户同时操作的数据通信系统。例如:订票、银行、保险公司以及证券交易系统等。
 
二、事务属性
事务4大属性:
1   原子性(Atomic):事务是一个完整的操作。
2   一致性(Consistent):当事务完成时,数据必须处于一致状态。
3   隔离性(Isolated):对数据进行修改的所有并发事务是彼此隔离的。
4   持久性(Durable):事务完成后,它对于系统的影响是永久性的。
 
三、创建事务
T-SQL中管理事务的语句:
1 开始事务: begin transaction
2 提交事务:commit transaction
3 回滚事务: rollback transaction


解答:在ADO.NET中定义一个事务,需要使用SqlTransaction命令,在这一命令之后任何语句都被认为是事务的一部分。命令commit用于完成事务,并使事务对数据库的修改成为永久的。Rollback命令用于取消这一事务,并还原对数据库的修改。

2.4 如何生存SqlDataAdapter的更新命令?
解答:使用SqlCommendBuilder可以节省代码量和编写时间,这个方法可以替换所有的sql语句中更新,删除,添加操作,更重要的是它改善了在一个短时间内向服务器发送多批量查询时程序和服务器的性能。

3.Linq查询技术

3.1 什么是Linq?

分析:LINQ学习笔记(1) 什么是LINQ?

解答:LINQ即Language Integrated Query(语言集成查询),借助于Linq可以使用类似与SQL语法来查询任何数据,目前支持的数据源有SQL,Objects,XML,DataSet等。

3.2 Linq查询关键字
解答:Linq常用的关键字有from , where ,select ,orderby , group by ,join ,into 等

3.3 什么是Linq to SQL 查询技术?
Linq to SQL是Linq的一部分,全称基于关系数据的.net语言集成,用于以对象形式管理关系数据,并提供了丰富的查询功能。

3.4 什么是Linq to DataSet查询技术?
Linq to DataSet主要提供对离线数据的支持,只有在填充DataSet之后,才能使用Linq to DataSet来查询数据。其功能主要是通过System.Data.DataRowExtion和System.Data.DataTableExtensions两个静态类的拓展方法实现的。


0 0