如何解决将扫描的pdf插入数据库c#
我正在尝试将 pdf PdfDocument doc
插入包含扫描文档的数据库中。当我尝试添加它时,我收到下一条消息错误:
System.Data.sqlClient.sqlException: '不允许从 nvarchar 类型到 varbinary(max) 类型的隐式转换。使用函数 CONVERT 执行此查询。'
我使用的是 Visual Studio 2019 和 sql Server 2012。
sqlCommand add = new sqlCommand("UPDATE table SET documento = @documento WHERE p = @contentP AND n = @contentN;",con);
add.Parameters.AddWithValue("@documento",Convert.ToString(doc));
add.Parameters.AddWithValue("@contentP",contentP);
add.Parameters.AddWithValue("@contentN",contentN);
con.open();
add.ExecuteNonQuery();
con.Close();
解决方法
System.Data.SqlClient.SqlException: '不允许从 nvarchar 类型到 varbinary(max) 类型的隐式转换。使用函数 CONVERT 执行此查询。'
您的问题是因为您试图通过执行 NVARCHAR
将 VARBINARY(MAX)
挤入 Convert.ToString(doc)
列。您必须获得一个 byte[]
并将其用作您的参数值
要修复此错误,您需要将 PdfSharp.Pdf.PdfDocument
保存到 MemoryStream
,然后从流中获取 byte[]
,请参见下文。
MemoryStream stream = new MemoryStream();
doc.Save(stream,false);
byte[] bytes = stream.ToArray();
现在您可以使用 bytes
作为您的 documento
参数值。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。