簡體   English   中英

在現有文本之間將字節數組寫入文本文件

[英]Write a byte array to text file between existing text

我有一個文件(它是一個zip文件)存儲在MSSQL DB的varbinary字段中。 我正在從數據庫讀取它到字節數組(Fisier)。

我想創建一個文本文件,其中包含一個可以在客戶數據庫上運行的sql腳本,並在客戶服務器上更新該文件。 我正在使用類似的東西來更新rdlc文件,但是那些文件存儲為文本,這是二進制的。 您有什么建議,我該怎么辦?

 using (FileStream fs = new FileStream(FilePath, FileMode.Create))
   using (StreamWriter sw = new StreamWriter(fs))
   {
   sw.WriteLine("declare @NewFile varbinary(max)");
   sw.WriteLine("set @NewFile =Convert(varbinary(max),'");

   //this for loop is wrong
   for (int i = 0; i < Fisier.Length; i++) sw.Write((char)Fisier[i]);

   sw.WriteLine("', 2)");

   sw.WriteLine("exec dbo.SetFile");
   sw.WriteLine("@File= @NewFile ,");
}

我也嘗試過BinaryWriter,但沒有設法解決。

好的,我找到了一個解決方案(雖然不太漂亮,但是可以用)。 SQL允許使用十六進制表示法定義值,因此我將每個字節轉換為十六進制表示形式

sw.Write("set @FisierNou = 0x");
for (int i = 0; i < Fisier.Length; i++) 
  sw.Write(Fisier[i].ToString("x2"));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM