2010-03-03 86 views
0

我已经将保存在数据库中的文件保存到磁盘上的文件中。我会如何修改它,所以方法返回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程序员,他们没有任何关于内存流的经验,也没有从Blob文件中获取数据。 – dovla091

相关问题