[英]Best way to retrieve pdf attachments saved as varbinary(max) from SQL Server and save to a local drive using C#
我有幾千個附件保存在 SQL 服務器數據庫中,列數據類型為varbinary(max)
。 我想檢索所有這些文件並將它們保存到本地驅動器。
實現這一目標的最佳方法是什么? 我不是專門尋找代碼,而是試圖了解所有選項,以便我可以在 C# 中執行此操作。
建議表示贊賞。 謝謝
您可以執行以下任一操作:
如果將所有文件存儲到一個文件夾中,請使用表的 ID 作為文件名的一部分以使其唯一。
這是示例代碼。 注意,命名空間 System.Data.SqlClient 沒有像 .NET 框架那樣默認被 .NET Core 項目引用; 您必須手動將 System.Data.SqlClient NuGet package 添加到項目中。
using System.Data.SqlClient;
var connectionString = "Data Source=localhost;Initial Catalog=MyDatbase;Integrated Security=True;";
var outputFolder = @"C:\temp\";
using var conn = new SqlConnection(connectionString);
conn.Open();
var query = "select DocumentId, Contents from DocumentFile where ID >= 1234";
using var cmd = new SqlCommand(query);
cmd.Connection = conn;
var reader = cmd.ExecuteReader();
if (!reader.HasRows) throw new Exception("No rows!");
while (reader.Read())
{
var fileName = $"{reader["DocumentId"]}.pdf";
var data = (byte[])reader["Contents"];
if (data == null) throw new Exception("Contents is null");
using var writer = new BinaryWriter(File.OpenWrite(Path.Combine(outputFolder, fileName)));
writer.Write(data);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.