我什么时候应该使用 Odbc、OleDb、SQLClient?有哪些权衡

2024-04-20

我从 SQLServer 数据库开始。所以看来我应该使用System.Data.SqlClient命名空间。但是,我们有可能关闭 SqlServer 数据库并转到 MySql 或 Oracle。因此,我提出了一套有关 .Net 应用程序如何与数据库通信的标准,以便将来在需要时更容易迁移到不同的数据库系统。

所以这里是标准:

  1. 如果可能的话使用 ORM(例如 NHibernate)(没有 LINQ,因为它只是 支持SqlServer,但是呢 实体框架及其支持 Oracle 和 MySql?)
  2. 如果 ORM 太过分了,那么使用参数化 SQL 查询。
  3. 仅将存储过程用于长时间运行或复杂的操作 需要在 数据库。

这让我想到了我的手头的主要问题。 我应该使用哪个命名空间来编码我的 DAL?

在我看来,选择是System.Data.ODBC and System.Data.OleDB:

  • 有哪些权衡?
  • 其中一个比另一个更受青睐吗?
  • 您对前 3 个标准有何看法?

系统.数据.SQLClient

仅连接到 SQL Server 2000 及更高版本,但在连接到这些数据库时您将获得最佳性能。

系统.数据.Oledb 客户端

连接到 SQL 6.5

OLEDBClient 使您能够连接到其他数据库,例如 ORACLE 或 Access。但是对于使用 SQL Server,您将使用 SQLClient 获得更好的性能。

注意:为了连接ORACLE,微软也有ORACLEClient。

系统.数据.ODBCClient

使用 ODBC 驱动程序仅连接到旧数据库。 (例如 MS Access 97。)

原始来源 https://social.msdn.microsoft.com/Forums/sqlserver/en-US/b1cf6249-cbc2-4ab7-90d9-dbea8acf523a/what-is-the-difference-between-systemdatasqlclient-systemdataoledbclient-and?forum=sqldataaccess

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我什么时候应该使用 Odbc、OleDb、SQLClient?有哪些权衡 的相关文章

  • 如何以编程方式重新启动 Windows 资源管理器进程

    我正在开发 Windows shell 扩展 不幸的是 在更改 DLL 时 我必须重新启动 Windows 资源管理器 因为它将 DLL 保留在内存中 我从 Dino Esposito 找到了这个程序 但它对我不起作用 void SHShe
  • 线程与并行处理

    Microsoft NET 4 0 为其框架引入了新的 并行增强功能 我想知道使用标准 System Threading 函数与新的并行增强功能创建应用程序之间有什么区别 并行扩展和常规线程之间最重要的区别可能是控制流 一个线程 使用创建n
  • 创建数据库索引的最佳实践和“经验法则”有哪些?

    我有一个应用程序 它循环访问数据库表中的大量记录 并对该数据库中的记录执行大量 SQL 和 Net 操作 目前我在 PostgreSQL 上使用 Castle ActiveRecord 我在几个字段上添加了一些基本的 btree 索引 正如
  • 我应该将一个任务包装在另一个任务中还是应该返回创建的任务?

    我正在构建一个使用 ADO NET 的 NET 4 0 应用程序 因此我无法使用 async await 我不想要一个解决方案 但我确实想知道以下哪种实现是最好的以及为什么 我的单元测试通过了所有三个实现 但我想知道这三个之间的区别 1 嵌
  • .NET 中的 base_convert

    NET 是否具有与 PHP 等效的本机功能基数转换 http php net base convert或者我需要自己写 我想从任何基数转换为任何其他基数 其中 to 基数或 from 基数可以是 2 36 的任何整数 PHP 函数示例 ba
  • 存储库本身通常不经过测试?

    抱歉 我对存储库模式 单元测试和 orm 工具还不熟悉 我一直在研究单元测试和存储库模式 并得出一些结论 我想知道我是否正确 存储库模式有助于在使用它的控制器中替换单元测试 例如 对吧 因为创建上下文 在 EF 中 或会话 在 NH 中 的
  • HSQLDB - 这是主数据库文件

    我在嵌入模式下使用 HSQLDB jdbc hsqldb file abc TESTDB 创建数据库后 文件夹abc有以下文件 TESTDB lck TESTDB script TESTDB log TESTDB properties 我的
  • 如何仅使用物理 wsdl 文件生成服务引用

    我多年来一直在创建和使用 Web 服务 并且始终能够使用 Visual Studio 从客户端创建服务引用 我需要使用第三方服务 但他们拒绝打开其安全性 以便我可以查看 wsdl 并进行服务引用 这是一项面向公众的服务 因此我认为不需要这种
  • Oracle SQL:从表中选择数据和分区名称并截断分区

    这是一个由两部分组成的问题 1 是否可以根据数据所在的分区使用 select 语句检索其名称ROWID或者其他一些标识符 eg SELECT DATA ID CATEGORY VALUE PARTITION NAME FROM MYTABL
  • 如何使用 System.Json 进行漂亮的打印?

    使用新的System Json 从 4 5 开始 http msdn microsoft com en us library system json 28v vs 95 29 aspx或同等的来自 Nuget 的 4 0 的 System
  • MySQL:错误 1215 (HY000):无法添加外键约束

    我读过了数据库系统概念 第六版 西尔伯沙茨 我将在 OS X 上的 MySQL 上实现第 2 章中所示的大学数据库系统 但我在创建表格时遇到了麻烦course 桌子department好像 mysql gt select from depa
  • C# 数据库包装设计

    我正在为 C 设计一个数据库包装器 以下是我有两个选择 选项A class DBWrapper IDisposable private SqlConnection sqlConn public DBWrapper sqlConn new S
  • 如何将透明光标渲染到位图并保留 alpha 通道?

    我使用下面的代码来渲染透明图标 private void button1 Click object sender EventArgs e using LoadCursorFromFile from user32 dll var cursor
  • C#:如何在虚拟模式下有效过滤(隐藏)ListView 项目?

    C 如何在虚拟模式下有效过滤 隐藏 ListView 项目 我正在寻找一种在虚拟模式下过滤 隐藏 显示 ListView 中的项目的方法 我将我的项目缓存在列表视图项目数组中 如何有效地使其在按下过滤按钮时仅显示特定的列表视图项目 然后在按
  • PostSharp AssemblyLoadException Autofac

    我正在设置一个新的解决方案 我想在其中使用最新的 Autofac 3 4 和 PostSharp 3 1 42 引用 NuGet 包后 出现以下错误 并且我无法弄清楚发生了什么 我从未选择 Autofac 3 3 0 包 包 config
  • SQLite3 数据库中的派生字段

    各位晚上好 今天想问一个关于SQLite3中的派生字段 也称为计算字段 的问题 利用存储在我的数据库中的两个值 重量 和 距离 我知道可以利用它们来执行计算 以利用需要这两个值的公式返回我想要的值 但是我想知道是否有一种方法可以通过 SQL
  • Lambda、封闭变量、显示类、可序列化性和流行层

    我已经为 Compact Framework 实现了一个流行层 包括BinaryFormatter 类似序列化器 我希望能够在适当的情况下序列化编译器生成的类 这些类是由 lambda 和迭代器等产生的 这样如果 例如 lambda 及其封
  • ORA-01438: 值大于此列允许的指定精度

    有时我们会从合作伙伴的数据库中收到以下错误 i ORA 01438 value larger than specified precision allows for this column i 完整响应如下所示
  • .Net 有什么好的解析库吗?

    我正在寻找一些简单易用 语法易于定义的东西 虽然我以前没用过 ANTLR http www antlr org 有 C 运行时
  • C# 中的自定义按钮:如何删除悬停背景?

    我正在尝试使用 Visual Studio 2005 对我的表单 其 FormBorderStyle none 执行自定义按钮 我在链接到该按钮的 ImageList 中有我的 3 种状态按钮图像 this btnClose AutoSiz

随机推荐