Извлечение документа MS Word из базы данных и локальное сохранение - PullRequest
2 голосов
/ 27 октября 2010

Я использовал элемент управления AsyncFileUpload AJAX для загрузки файла в столбец в базе данных SQL Server с использованием LINQ to SQL.Как извлечь документ из базы данных и разрешить пользователю сохранять на локальном диске с помощью диалогового окна «Сохранить как» с помощью LINQ to SQL?Это веб-приложение ASP.NET.Столбец базы данных DocumentFileContent относится к типу данных Image SQL Server.Спасибо

1 Ответ

2 голосов
/ 27 октября 2010

Лучший способ в веб-формах - использовать обработчик HTTP.

Запрос БД для типа данных image будет сопоставлен с byte[].

public class Document : IHttpHandler
{
    public void ProcessRequest(HttpContext context)
    {
        using (SQLConnection con = new SQLConnection)
        {
            SqlCommand command = new SqlCommand("SELECT imagefield FROM table", con);
            connection.Open();

            SqlDataReader reader = command.ExecuteReader();
            if (reader.HasRows)
            {
                while (reader.Read())
                {
                    context.Response.ContentType = "application/msword";
                    context.Response.BinaryWrite(reader["imagefield"]);
                }
            }
            reader.Close();
        }
    }

    public bool IsReusable
    {
        get
        {
            return false;
        }
    }
}
...