2016-03-02 220 views
0

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

enter image description here

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(); 

当我运行该项目,并下载图像,我得到了一个文件,文件大小,但它不能打开。

这里是我拍摄的文件:

enter image description here

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

任何建议?

回答