代码如下
try
{
DBHelper db = DBHelper.DBHelperInstance(System.Configuration.ConfigurationSettings.AppSettings["DataBaseType"]); ;
OracleConnection oconn = new OracleConnection(db.pcsConnectionString);
oconn.Open();
string strSQL = "select DOC from exceltodb where fileid='1112'";
OracleCommand OCMD = new OracleCommand(strSQL, oconn);
OracleDataReader Ord = OCMD.ExecuteReader(CommandBehavior.SequentialAccess);
int bufferSize = 100;
byte[] outbyte = new byte[bufferSize];
long retval; // The bytes returned from GetBytes.
long startIndex = 0;
Response.AddHeader("Content-Type", "application/vnd.ms-excel");
Response.AddHeader("Content-Disposition", "attachment;filename=test.xls");
if(Ord.Read())
{
// Reset the starting byte for the new BLOB.
startIndex = 0;
// Read the bytes into outbyte[] and retain the number of bytes returned.
retval = Ord.GetBytes(0, startIndex, outbyte, 0, bufferSize);
// Continue reading and writing while there are bytes beyond the size of the buffer.
while (retval == bufferSize)
{
this.Response.BinaryWrite(outbyte);
this.Response.Flush();
// Reposition the start index to the end of the last buffer and fill the buffer.
startIndex += bufferSize;
retval = Ord.GetBytes(0, startIndex, outbyte, 0, bufferSize);
}
// Write the remaining buffer.
this.Response.BinaryWrite(outbyte);
this.Response.Flush();
}
Ord.Close();
oconn.Close();
this.Response.End();
}
catch(Exception ex)
{
this.Response.Write("<b>ex.Message</b>");
}
finally
{
}
参考自CSDN相关文档