2010-03-03 3 views
0

У меня есть метод, который сохраняет файл, сохраненный в db, в файл на диске. Как я могу его изменить, поэтому метод возвращает MemoryStream?Сохранение файла с SQL Server в потоке памяти в C#

public static void databaseFileRead(string varID, string varPathToNewLocation) { 
     using (var varConnection = Locale.sqlConnectOneTime(Locale.sqlDataConnectionDetailsDZP)) 
     using (var sqlQuery = new SqlCommand(@"SELECT [RaportPlik] FROM [dbo].[Raporty] WHERE [RaportID] = @varID", varConnection)) { 
      sqlQuery.Parameters.AddWithValue("@varID", varID); 
      using (var sqlQueryResult = sqlQuery.ExecuteReader()) { 
       if (sqlQueryResult != null) { 
        sqlQueryResult.Read(); 
        var blob = new Byte[(sqlQueryResult.GetBytes(0, 0, null, 0, int.MaxValue))]; 
        sqlQueryResult.GetBytes(0, 0, blob, 0, blob.Length); 
        using (var fs = new FileStream(varPathToNewLocation, FileMode.Create, FileAccess.Write)) { 
         fs.Write(blob, 0, blob.Length); 
        } 
       } 

      } 
     } 
    } 

ответ

2

Изменить FileStream на MemoryStream. Объявите объект потока на верхнем уровне метода и используйте его в операторе возврата

+0

Спасибо, попробуем. – MadBoy

+0

было бы отлично, если бы кто-то мог вставить весь код, чтобы другие могли изучить, как это делается ... Есть также молодые программисты на Stackoverflow, у которых нет опыта с memystream и получения данных из файла Blob ... – dovla091