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

C# SqlDataReader SqlTypes和DbType类型的访问器之间有什么区别?,c#,sql-server,sqldbtype,dbtype,C#,Sql Server,Sqldbtype,Dbtype,SqlDataReader SqlTypes和DbType类型的访问器之间有什么区别 什么时候使用这两种方法更合适?如果您的代码需要与提供程序无关,并且需要针对多个数据库系统工作,则应避免使用SQL Server特定的功能,您的代码根本不应引用SqlDataReader。它应该使用中性类型,例如DbDataReader,然后只有GetDecimal方法可用 另一方面,如果您愿意将实现与SQL Server绑定,或者您已经必须是特定于实现的,那么我建议使用特定于SQL Server的访问器(例如G

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


什么时候使用这两种方法更合适?

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


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

我不完全确定您指的是什么-您的意思是,例如,
GetDecimal()
vs
GetSqlDecimal()
?@Damien\u不信者是的,这就是我的意思的一个例子