我正在尝试将二进制blob存储在数据库表中并从中获取输出。数据存储在MemoryStream
对象中。我正在尝试使用查询异步将其保存到sql server 2012表。调用成功,但没有数据插入列。 (例如,当我查询它时,我得到一个0x0条目。)
果然,实际检查一条迹线我看到小巧的发送一个0x0。内存流有一个长度,所以我做错了什么,或者是不是支持这种情况? 我的查询字符串只是一个简单的插入,并返回id和插入时间。
我正在使用以下电话
using(var conn=new SqlConnection(_connstr)){
var dynParams = new DynamicParameters();
dynParams.Add("BinaryBlob",
_memoryStream,DbType.Binary,ParameterDirection.Input,-1);
var res = await conn.QueryAsync<MyResultType>(_queryStr, dynParams);
}
查询插入一行并返回时间戳,但实际上没有插入数据。我做错了什么?
答案 0 :(得分:3)
确保您寻找内存流的开头。流具有位置状态。另一种方法是在尝试持久化之前将内存流转换为Byte []。
e.g。
_memorystream.Seek(0, SeekOrigin.Begin);