gpt4 book ai didi

c# - 如何在将保存的文件从 MS SQL Server 2008 检索到本地驱动器时获取文件扩展名

转载 作者:行者123 更新时间:2023-11-30 17:49:34 26 4
gpt4 key购买 nike

我在这种情况下想要在 MS SQL SERVER 2008 中保存和检索所有类型的文件,我可以保存和检索任何文件但没有扩展名,例如,如果我将 xyz.txt 文件保存到数据库中,当我在本地驱动器上检索它,它看起来像 xyz ,没有扩展名,是的,如果我们手动提供扩展名,那么我们可以看到它的内容。

以下是我的表格图片 Table

用于将任何文件类型保存到数据库的 C# 代码

 private void cmdSave_Click(object sender, EventArgs e)
{
try
{
//Read File Bytes into a byte array
byte[] FileData = ReadFile(txtFilePath.Text);

//Initialize SQL Server Connection
SqlConnection CN = new SqlConnection(txtConnectionString.Text);

//Set insert query
string qry = "insert into FilesStore (OriginalPath,FileData) values(@OriginalPath, @FileData)";

//Initialize SqlCommand object for insert.
SqlCommand SqlCom = new SqlCommand(qry, CN);

//We are passing Original File Path and File byte data as sql parameters.
SqlCom.Parameters.Add(new SqlParameter("@OriginalPath", (object)txtFilePath.Text));
SqlCom.Parameters.Add(new SqlParameter("@FileData", (object)FileData));

//Open connection and execute insert query.
CN.Open();
SqlCom.ExecuteNonQuery();
CN.Close();

//Close form and return to list or Files.
this.Close();
}
catch(Exception ex)
{
MessageBox.Show(ex.ToString());
}
}

用于从数据库中检索文件到本地驱动器的 C# 代码

private void btnSaveFromDBToDisk_Click(object sender, EventArgs e)
{
try
{
//Check if a file is selected in Grid
if (dataGridView1.CurrentCell ==null)
{
MessageBox.Show("Select a file in Grid first.");
return;
}

int SelectedRow = dataGridView1.CurrentCell.RowIndex;
string OriginalPath = DS.Tables[0].Rows[SelectedRow]["OriginalPath"].ToString();

saveFileDialog1.FileName = OriginalPath;

DialogResult DR = saveFileDialog1.ShowDialog();
if (DR == DialogResult.OK)
{
string FileName = saveFileDialog1.FileName;
//Get File data from dataset row.
byte[] FileData = (byte[])DS.Tables["FilesStore"].Rows[SelectedRow]["FileData"];
//Write file data to selected file.
using (FileStream fs = new FileStream(FileName, FileMode.Create))
{
fs.Write(FileData, 0, FileData.Length);
fs.Close();
}

MessageBox.Show("File saved successfully to ");
}
}
catch(Exception ex)
{
MessageBox.Show(ex.ToString());
}
}

该项目如何运作的图片。

http://i.stack.imgur.com/dqYMe.jpg

Save and retrieve image project, unable to see file extension as in step 6 arrow

您可以从这里下载这个项目http://www.shabdar.org/sql-server/121-store-or-save-files-in-sql-server-database-using-c.html

最佳答案

系统对“已知文件类型的扩展名”的设置是什么?

转到 Windows 资源管理器,按 Alt,选择“工具|文件夹选项”,选择“查看”选项卡,是否勾选了“隐藏已知文件类型的扩展名”?如果是这样,请取消选中它并单击“确定”。

如果那是问题所在,那么现在应该没问题了! :)

关于c# - 如何在将保存的文件从 MS SQL Server 2008 检索到本地驱动器时获取文件扩展名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21545918/

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