如何将文件(PDF)插入到varbinary SQL Server列中,然后检索它?

Jes*_*ber 5 c# sql-server blob file

我希望获取运行报告的结果(Crystal Reports中的PDF文件),序列化它,将其粘贴到varbinary字段中,然后再将其反序列化并将其呈现给用户.

现在我只需要简单的旧ADO .NET(SqlClient,SqlCommand等)

这有什么陷阱吗?鉴于我会知道本地机器上当前保存PDF文件的路径,实现此目的的基本语法是什么?

GvS*_*GvS 5

编辑:刚刚在MSDN文档中看到Image将被删除.更好地使用VARBINARY(MAX).(嘿,我不知道那个).

我的老答案:VARBINARY的限制为8 KB.可能太小而无法存储PDF文件.您最好使用IMAGE数据类型.

使用参数通过SqlCommand插入/选择数据,您可以像任何普通字段一样使用纯SQL.

传递到图像字段的数据是一个字节数组.

编辑2:由于您使用的是C#,因此您应该使用DataReader检索数据.要创建DataReader,请使用SqlCommand.ExecuteReader上的SequentialAccess标志,以防止数据过早地被读入内存.