![](/img/trans.png)
[英]SQL Server : CLR RijndaelManaged bytes not decrypting correctly from varbinary(max)
[英]how to upload bytes[] to varbinary(max) from blob to sql
我正在尝试填充此字段:
这是我的做法:
using (SqlConnection conn = new SqlConnection(connectionString))
{
conn.Open();
SqlTransaction transaction = conn.BeginTransaction();
//here we are iterating through a list of queries that we want to execute inside of this transaction
foreach (var query in queries)
{
//retrieve blob bytes from azure
byte[] tifBytes = ReadInputName(query.TifFileName);
byte[] rtfBytes = ReadInputName(query.RtfFileName);
SqlCommand cmd = new SqlCommand(query.Query, conn, transaction);
var rtfBytesParam = new SqlParameter("@rtfBytes", SqlDbType.Binary)
{
Value = rtfBytes
};
var tifBytesParam = new SqlParameter("@tifBytes", SqlDbType.Binary)
{
Value = tifBytes
};
cmd.Parameters.Add(rtfBytesParam);
cmd.Parameters.Add(tifBytesParam);
int rowsAffected = cmd.ExecuteNonQuery();
}
transaction.Commit();
}
以下是我遇到的例外情况,特别是Core.Net SqlClient 数据提供程序:不允许从数据类型 varchar 到 varbinary(max) 的隐式转换。 使用 CONVERT function 运行此查询。
请注意,正在执行的查询如下所示:
我究竟做错了什么? 我们如何将 blob 插入 varbinary(max) 字段?
您正在插入文字参数名称 ( '@tifBytes'
),这会导致 SQL 尝试在 VARBINARY 列中插入字符串“@tifBytes”,因此会出现错误。 删除参数周围的单引号。
另外,不要像这样构建 SQL。 文件名中可以有单引号。 当然,看起来一段代码构建了 SQL,而另一段代码提供了参数并运行了查询,但随后重新设计了它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.