gpt4 book ai didi

c# - 如何从sql数据库中检索excel文件

转载 作者:行者123 更新时间:2023-11-30 23:08:22 26 4
gpt4 key购买 nike

我在我的应用程序中使用 Bootstrap 。我在 sql db 中存储一个 excel 文件。

这是我的代码;

Default.aspx

 <div class="control-group">
<label class="control-label">
Upload</label>
<div class="controls">
<input id="fileupload" type="file" runat="server"/>
</div>
</div>
<asp:Button ID="btnSave" runat="server" OnClick="btnSave_Click" />

Default.aspx.cs

  protected void btnSave_Click(object sender, EventArgs e)
{
string filePath = Server.MapPath("~/Upload/");
HttpFileCollection hfc = Request.Files;

if (!Directory.Exists(filePath))
{
Directory.CreateDirectory(filePath);
}
if (hfc.Count != 0)
{
string contenttype = String.Empty;

HttpPostedFile hpf = hfc[i];

string fileExtn = Path.GetExtension(hfc[i].FileName).ToLower();

if (fileExtn == ".xls" || fileExtn == ".xlsx" || fileExtn == ".xlmx")
{
switch (fileExtn)
{

case ".xls":

contenttype = "application/excel";

break;

case ".xlsx":

contenttype = "application/excel";

break;

case ".xlmx":

contenttype = "application/excel";

break;
}

if (hpf.ContentLength > 0)
{
string SPfilePath = Server.MapPath("~/Upload/");
string filepath = SPfilePath + System.IO.Path.GetFileName(hpf.FileName);
hpf.SaveAs(filepath);
string ContentType = hpf.ContentType;
int fileLen = hpf.ContentLength;
byte[] fileBytes = new byte[fileLen - 1];
hpf.InputStream.Read(fileBytes, 0, fileBytes.Length);
byte[] Data = fileBytes;
}
new DefaultManager().SaveFile(Data , fileLen ,filepath ,ContentType );
}
}
UploadMsg = auditmgr.AddClientAuditReport(, audit);
}
}

这里我将 ContentType 保存为 varchar(256)filepathvarchar(256)fileLenintData 为 db 中的 varchar(max)。它正在添加到数据库中。但我不知道如何从 db 检索该 excel 文件。

我在 SQL 数据库中以字节为单位存储该 excel 文件

最佳答案

首先将“Data as varchar(max)”的数据类型更改为 varbinary(max),然后将文件内容保存到数据库中

//你可以使用这段代码从数据库中检索文件

DataTable dt = GetFileDetailFromDatabase(fileID: 20); // here you select data from database, for Ex. fileID is 20

string strpath = @"C:\Download\" + dt.Rows[0]["FileName"].ToString(); // if you are storing file name(Only file name with extension not full file path) in database other wise give any temp file name with same extension which file had at the time of save in database

FileStream flStrm = new FileStream(strpath, FileMode.Create);
Byte[] Buffer = (Byte[])dt.Rows[0]["Data"];
flStrm.Write(Buffer, 0, Buffer.Length);
flStrm.Close();
Buffer = null;

关于c# - 如何从sql数据库中检索excel文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20834217/

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