SqlDataReader SqlTypes 和 DbType 类型的访问器有什么区别?

What is the difference between SqlDataReader SqlTypes and DbType typed accessors?

SqlDataReader SqlTypes 和 DbType 类型的访问器有什么区别?

什么时候使用更合适?

如果您的代码需要与提供程序无关并针对多个数据库系统工作,您应该避免使用 SQL 服务器特定功能,您的代码根本不应引用 SqlDataReader。它应该使用中性类型,例如 DbDataReader 然后只有 GetDecimal 方法可用。

另一方面,如果您乐于将您的实现具体绑定到 SQL 服务器,或者您已经必须特定于实现,那么我建议使用 SQL 服务器特定访问器(例如 GetSqlDecimal)和类型,因为它们更具体地与 SQL 服务器数据类型对齐。