假设您已将双打写入流(在本例中名为 _pictureContent),您可以使用 AddWithValue 作为 sqlCommand 参数将其写出。
command.Parameters.AddWithValue("@PictureContent", _pictureContent);
要读回它:
我将“缓冲区大小”作为单独的列存储在表中,所以当我阅读它时,我知道其中是否有任何内容。如果我这样做了,我会使用 GetBytes 来读取 varbinary 列。
长缓冲区大小 = dataReader.IsDBNull(FIELD_BUFFERSIZE) ?0 : dataReader.GetInt64(FIELD_BUFFERSIZE);
if (bufferSize > 0)
{
j.PictureContent = new byte[bufferSize];
bufferSize = dataReader.GetBytes(FIELD_PICTURECONTENT, 0, _pictureContent, 0, Convert.ToInt32(bufferSize));
}
FIELD_PICTURECONTENT 是传入列集合中的偏移量(即第 5 列),第一个 0 是传入流中要读取的起始位置,_picture content 是目标字节数组,第二个 0 是要写入的偏移量在 bytearray 中, (buffersize) 是要读取的字节数。