2012-03-05 57 views
0

使用Silverlight和LINQ将文件保存到SQL数据库的最佳方式是什么?使用Silverlight和LINQ将文件保存到SQL数据库

我已经阅读了一些文章,其中一些在StackOverflow这里,有太多的信息,我不知道什么是最好的。

我有一些使用的作品:

// Read the file 
var reader = new StreamReader(openFileDialog.File.OpenRead()); 
contents = reader.ReadToEnd(); 
reader.Close(); 

// Convert to byte[] 
byte[] inputbuffer; 
var encoding = new UTF8Encoding(); 
inputBuffer = encoding.GetBytes(contents); 

,但根据我的东西在这里StackOverflow上阅读,使用UTF8Encoding是不是一个好主意。

另外我可以从数据库中使用LINQ获取文件,当我需要它时,但是如何将它从byte []转换回实际文件?

或者会使用WCF保存和检索文件更好?

任何想法,不胜感激。

+0

取决于文件和数据库的内容领域。如果文件是文本,那么编码将只对非英文字符很重要,如果文件是二进制的 - 这是另一个故事 – b0rg 2012-03-05 10:46:06

回答

1

yes UTF8Encoding不是一个好的选择。 您可以使用FileStream's copyto method将文件字节复制到内存流中,并使用它的ToArray方法来获取所有字节。

如果您可以直接从Silverlight访问数据库,但应该没问题,但问题的第二部分表明您可能不确定(?) - 如果是这样,请将此置于另一个问题中。

这里是一个片段从文件返回字节:

 var stream = openFileDialog.File.OpenRead(); 
     using (var memStream = new System.IO.MemoryStream()) 
     { 
      stream.CopyTo(memStream); 
      return memStream.ToArray(); 
     } 

为了节省回来,你将不得不使用SaveFileDialog类在Silverlight

+0

谢谢Carsten。这工作像一个魅力。 – Neill 2012-03-05 11:53:28

相关问题