SqlDataReader.GetSqlBinary vs SqlDataReader.GetSqlBytes?

时间:2011-07-21 11:20:36

标签: .net sql-server sqlclient system.data

在名称空间System.Data.SqlClient下,我们同时拥有SqlDataReader.GetSqlBinary  和SqlDataReader.GetSqlBytes

两者似乎都给出了“原始数据”。如果是这样,它们之间有什么区别?

2 个答案:

答案 0 :(得分:1)

GetSqlBinary返回SqlBinary结构:

  

表示要存储在数据库中或从数据库中检索的可变长度的二进制数据流。

GetSqlBytes会返回SqlBytes类:

  

表示包装Buffer或Stream的可变引用类型。

似乎不同之处在于GetSqlBinary为您提供了一个数据块作为字节数组,而GetSqlBytes类似但将数据存储在缓冲区中,允许您与底层数据库进行交互数据作为流。

答案 1 :(得分:1)

GetSQLBytes存储在内部缓冲区中以进行更多操作,Binary只是您获得的流并按原样使用它。

这两个返回SqlBytesSqlBinary并看到这两种类型,您可以看到它们的完全不同以及它们如何存储数据。

http://msdn.microsoft.com/en-us/library/system.data.sqltypes.sqlbytes.storage.aspx

http://msdn.microsoft.com/en-us/library/system.data.sqltypes.sqlbytes.aspx