c#-Dapper和Varbinary(max)流参数
作者:互联网
我正在尝试将二进制Blob存储在数据库表中并从中获取输出.数据存储在MemoryStream对象中.我正在尝试使用查询异步将此保存到sql server 2012表中.调用成功,但是没有数据插入到列中. (例如,查询回来时得到0x0条目).
果不其然,实际上检查了一条轨迹,我发现小巧玲珑发送0x0.内存流有长度,所以我做错了什么吗?还是dapper不支持这种情况?
我的查询字符串只是一个简单的插入,并且返回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);
}
该查询将插入一行并返回时间戳,但实际上未插入任何数据.我究竟做错了什么?
解决方法:
确保寻找到内存流的开头.流具有位置状态.另一种方法是在尝试持久存储之前将内存流转换为Byte [].
例如
_memorystream.Seek(0, SeekOrigin.Begin);
标签:sql-server-2012,dapper,c 来源: https://codeday.me/bug/20191121/2048028.html