SqlDataReader.GetSqlBinary vs SqlDataReader.GetSqlBytes? - PullRequest
6 голосов
/ 21 июля 2011

В пространстве имен System.Data.SqlClient у нас есть и SqlDataReader.GetSqlBinary и SqlDataReader.GetSqlBytes .

Кажется, что оба дают «необработанные данные».Если так, то в чем разница между ними?

Ответы [ 2 ]

1 голос
/ 21 июля 2011

GetSQLBytes хранятся во внутреннем буфере для дополнительных манипуляций, Binary - это просто поток, который вы получаете и используете его как есть.

Эти два возврата SqlBytes и SqlBinary и, увидев эти два типа, вы можете увидеть их полностью разные и то, как они хранят данные.

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

1 голос
/ 21 июля 2011

GetSqlBinary возвращает структуру SqlBinary:

Представляет поток двоичных данных переменной длины, которые хранятся в базе данных или извлекаются из нее.

GetSqlBytes возвращает SqlBytes класс:

Представляет изменяемый ссылочный тип, заключающий в себе буфер или поток.

Похоже, что разница в том, что GetSqlBinary дает вам массив данных в виде байтового массива, в то время как GetSqlBytes похож, но сохраняет данные в буфере, который позволяет вам взаимодействовать с базовыми данными в виде потока. .

...