gpt4 book ai didi

c# - 如何在 SQL Server 2008 中存储和检索 .pdf、.exe 文件

转载 作者:搜寻专家 更新时间:2023-10-30 20:42:48 26 4
gpt4 key购买 nike

我目前正在开发 Windows 窗体应用程序(C#、VS 2010),我需要创建功能,使用户能够将 .pdf.exe 文件上传到SQL Server 2008 数据库并将它们下载回来。

我遇到的问题是从数据库下载的文件总是损坏(.txt 文件除外),即使它们的大小相同。我使用 varbinary(MAX) 作为文件类型来将数据存储在数据库中。

谁能告诉我一些示例代码如何做到这一点?

PS:我已经研究了一个多星期了,还是找不到解决我问题的方法,请问有人能帮忙吗?任何答案将不胜感激。

最佳答案

在下面的例子中有一些假设:

  1. 我正在使用 Dapper用于数据库访问。它扩展了任何 IDbConnection 对象。
  2. 我在数据库中有一个表,该表具有这样的定义 CREATE TABLE Data (Id INT IDENTITY(1, 1) PRIMARY KEY, Data VARBINARY(MAX))
  3. HereReadAllBytes
  4. 的文档

因此,很明显,由于您没有提供与表结构相关的任何内容,因此您将不得不更改此代码以满足您的需要,但这会让您入门。

编写

this.connection.Open();

try
{
var parameters = new
{
Data = File.ReadAllBytes(...);
};
return connection.Execute("INSERT INTO Data (Data) VALUES (@Data)", parameters);
}
finally
{
this.connection.Close();
}

正在阅读

this.connection.Open();

try
{
var parameters = new { Id = 1 };
return connection.Query(
"SELECT Data FROM dbo.Data WHERE Id = @Id", parameters)
.Select(q => q.Data as byte[])
.Single();
}
finally
{
this.connection.Close();
}

关于c# - 如何在 SQL Server 2008 中存储和检索 .pdf、.exe 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12510368/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com