【问题标题】:Download File from BLOB Oracle using c#使用 c# 从 BLOB Oracle 下载文件
【发布时间】:2016-06-14 23:48:08
【问题描述】:

我在 c# 中创建了一个简单的项目,以使用 BLOB 数据类型将文件数据保存到 Oracle 数据库中,并且它工作正常。我使用 devexpress gridcontrol 来显示数据。这是我创建的示例数据。

btnDownload 中将从我选择的行的 blob oracle 下载数据。这是我的代码:

var rowHandle = gridView1.FocusedRowHandle;
var obj = gridView1.GetRowCellValue(rowHandle, "FILENAME");

if(koneksidb.con.State == ConnectionState.Open)
{
    koneksidb.con.Close();
}
koneksidb.con.Open();
OracleCommand cmd = new OracleCommand();
OracleDataReader dr;
cmd.CommandText = @"SELECT * FROM LATIHANFILEMANAGER WHERE FILENAME='"+ obj +"'";
cmd.Connection = koneksidb.con;
dr = cmd.ExecuteReader();
while(dr.Read())
{
    UInt32 FileSize = Convert.ToUInt32(dr.GetInt32(dr.GetOrdinal("FILESIZE"))); //get file size from table LATIHANFILEMANAGER
    rawData = new byte[FileSize];
    var nilai = dr.GetBytes(dr.GetOrdinal("FILEDATA"), 0, rawData, 0, (int)FileSize); //this file that i wanna download
    FileStream fls = new FileStream(@"D:\newfile.png", FileMode.OpenOrCreate, FileAccess.Write);
    fls.Write(rawData, 0, (int)FileSize);
    fls.Close();
}
dr.Close();

当我运行这个项目并下载图像时,我得到了一个文件和文件大小,但它无法打开。

这是我捕获的文件:

我从这个链接得到的这个教程: https://docs.oracle.com/cd/E17952_01/connector-net-en/connector-net-programming-blob-reading.html

有什么建议吗?

【问题讨论】:

    标签: c# oracle11g devexpress blob


    【解决方案1】:

    首先,您将图像(BLOB)从数据库显示到 PictureBox,而不是使用 SaveFileDialog。 欲了解更多信息,请访问 How to use saveFileDialog for saving images in C#?

    【讨论】:

    • 文件不是图片怎么办?像.pdf,.mp4等几种多格式文件..它不能在图片框中显示..?
    猜你喜欢
    • 2011-03-27
    • 1970-01-01
    • 2017-01-23
    • 2012-05-19
    • 2023-03-17
    • 2017-08-20
    • 2015-06-06
    • 2015-06-20
    相关资源
    最近更新 更多