【发布时间】:2021-07-19 15:04:31
【问题描述】:
我正在尝试将 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();
【问题讨论】:
-
请使用参数化查询 - 通过连接等方式构建 SQL 查询是灾难的根源。它不仅是许多难以调试的语法错误的来源,而且还是 SQL Injection attacks 的大门。
-
@zaggler
doc定义为PdfDocument,即来自nugetPdfSharp。现在我收到此错误:System.InvalidCastException:'无法将'PdfSharp.Pdf.PdfDocument'类型的对象转换为'System.IConvertible'类型。当我把Convert.ToByte(doc) -
@zaggler 现在可以使用了,非常感谢
标签: c# database pdf sql-server-2012 visual-studio-2019