Конвертировать varbinary обратно в файл .txt - PullRequest
5 голосов
/ 18 октября 2011

У меня есть база данных (SQL 2008), в которой я храню файл. Они сохраняются как тип varbinary (max).

Теперь мне нужно снова получить файл .txt, чтобы я мог выполнить цикл посодержимое файла, как я делал с StreamReader.

while ((line = file.ReadLine()) != null)
{
string code = line.Substring(line.Length - 12);
}

Но как я могу преобразовать varbinary byte [] обратно в обычный файл .txt, чтобы я мог просмотреть строку содержимогоline.

Я нашел некоторые идеи с потоком памяти или файловым потоком, но не могу заставить их работать.

Заранее спасибо!

Ответы [ 4 ]

4 голосов
/ 18 октября 2011
MemoryStream m = new MemoryStream(byteArrayFromDB);
StreamReader file = new StreamReader(m);
while ((line = file.ReadLine()) != null)
{
string code = line.Substring(line.Length - 12);
}
2 голосов
/ 17 сентября 2014

cv - поле varbinary (max)

2 голосов
/ 18 октября 2011

попробуйте это:

System.IO.File.WriteAllBytes("path to save your file", bytes);
0 голосов
/ 06 декабря 2015
    static void Main(string[] args)
    {
        GetData();
    }
    public static void GetData()
    {
        SqlConnection conn = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["main"].ConnectionString);
        conn.Open();
        string query = "SELECT FileStream FROM [EventOne] Where  ID=2";
        SqlCommand cmd = new SqlCommand(query, conn);

        DataTable dt = new DataTable();
        dt.Load(cmd.ExecuteReader());
        byte[] buffer = dt.AsEnumerable().Select(c => c.Field<byte[]>("FileStream")).SingleOrDefault();
        File.WriteAllBytes("c:\\FileStream.txt", buffer);
    }
...