2012-03-05 55 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

相關問題