VB.net中ADODB和SqlClient之间的主要区别是什么

sha*_*him 2 vb.net

我的任务是转换和使用ADOOB连接的旧程序使用SqlClient连接.有什么区别?

小智 5

OleDb更通用.如果您将来移动到不同的数据库类型,它很可能会有一个Ole驱动程序,您不必更改尽可能多的代码.

另一方面,Sql Server本机驱动程序应该更快,如你所说,它有更好的参数支持(参数可以使用名称,而不必按顺序).

ado库中存在一些限制,以下一些已知的限制

  1. 不支持分层记录集.

  2. 仅Microsoft SQL Server数据库支持服务器端游标(FO-RO游标除外).

  3. Recordset.Open方法支持多个以分号分隔的SQL语句,但Connection和Command对象的Execute方法不支持.

  4. Oracle数据库不支持参数化存储过程

  5. Connection和Recordset对象的Open方法允许异步执行,但Connection和Command对象的Execute方法不允许异步执行.

  6. Recorset对象的UpdateBatch方法要求SQL源语句包含所有相关表的键字段,并且不能使用旧语法JOIN语句,嵌套SELECT语句和派生表.

  7. 用于打开服务器端键集和动态游标的SELECT语句必须至少包含一个不可为空的键列.

  8. Move方法不起作用,并引发服务器端动态游标的异常.

  9. Recordset类的Index,Seek,MarshalOption,StayInSync成员未实现,并标记为已过时.

  10. Recordset类的PageSize,Clone和Find成员未针对键集和其他服务器端游标实现.

  11. Command类的CommandStream,Dialect,NamedParameters和Prepared成员未实现,并标记为已过时.

  12. Stream类的ReadText,WriteText和SkipLines方法未实现,并标记为已过时.

  13. 不支持Connection或Recordset对象的一些动态属性.

  14. 不支持ADODB.Record类.

某些功能部分或不受支持

希望能帮助到你