[英]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.