//
//方法功能:读取个人签名到内存
//
//
//
//
private byte[] LoadMarkImage(string szSql)
{
//bool mResult = false;
byte[] m_bytFileBody = null;
System.IO.MemoryStream oStream = null;
System.IO.BinaryWriter oWriter = null;
try
{
//string szSelectCmd = "SELECT c.MarkBody FROM OA_ESignature c where c.CO='XF01' and c.UserId='" + userid + "'";
//if (m_oDbHelper == null)
//{
// m_oDbHelper = new DbHelper();
//}
//m_oDbHelper.OpenDbResource();
DbCommand mCommand = m_oDbHelper.CreateDbCommand();
mCommand.CommandType = CommandType.Text;
mCommand.CommandText = szSql;
IDataReader oReader = mCommand.ExecuteReader(System.Data.CommandBehavior.SequentialAccess);
// LogCentral.CurrentLogger.LogInfo();
if (oReader.Read())
{
if (!oReader.IsDBNull(0))
{
int bufferSize = 500; // Size of the BLOB buffer.
byte[] outbyte = new byte[bufferSize]; // The BLOB byte[] buffer to be filled by GetBytes.
long retval; // The bytes returned from GetBytes.
long startIndex = 0; // The starting position in the BLOB output.
// Get ACL By BLOB ColumnType
oStream = new System.IO.MemoryStream();
oWriter = new System.IO.BinaryWriter(oStream, System.Text.Encoding.UTF8);
startIndex = 0;
retval = oReader.GetBytes(0, startIndex, outbyte, 0, bufferSize); //ItemACL
// Continue reading and writing while there are bytes beyond the size of the buffer.
while (retval == bufferSize)
{
oWriter.Write(outbyte);
oWriter.Flush();
startIndex += bufferSize;
retval = oReader.GetBytes(0, startIndex, outbyte, 0, bufferSize); //ItemACL
}
// Write the remaining buffer.
oWriter.Write(outbyte, 0, (int)retval);
}
//m_szFileType = oReader.GetString(1).ToString();
// mResult = true;
}
//else
//{
// mResult = false;
//}
oReader.Close();
oReader = null;
m_bytFileBody = oStream.GetBuffer();
//LogCentral.CurrentLogger.LogInfo("m_bytFileBody:" + m_bytFileBody.ToString());
LogCentral.CurrentLogger.LogInfo("m_bytFileBody:" + m_bytFileBody.Length);
}
catch (Exception e)
{
LogCentral.CurrentLogger.LogInfo(e.ToString());
//mResult = false;
}
finally
{
//m_oDbHelper.CloseDbResource();
try
{
if (oWriter != null)
{
oWriter.Flush();
oWriter.Close();
}
}
catch { }
try
{
if (oStream != null)
oStream.Close();
}
catch { }
}
return m_bytFileBody;
}
网站标题:c#读取个人签名到内存
文章源于:
http://kswsj.cn/article/iehoio.html