2010-10-26 5 views
2

J'ai utilisé le contrôle AJAX AsyncFileUpload pour télécharger un fichier dans une colonne d'une base de données SQL Server à l'aide de LINQ to SQL. Comment puis-je récupérer le document à partir de la base de données et permettre à l'utilisateur d'enregistrer sur le lecteur local à l'aide d'une boîte de dialogue Enregistrer sous en utilisant LINQ to SQL? C'est une application Web ASP.NET. La colonne de la base de données DocumentFileContent est un type de données Image SQL Server. MerciRécupération de document MS Word à partir de la base de données et enregistrement local

Répondre

2

Le meilleur moyen dans les formulaires Web est d'utiliser un gestionnaire HTTP.

La requête DB pour un type de données image est mappée sur 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; 
     } 
    } 
} 
+0

Merci. Cela a fonctionné parfaitement! – Lakeshore

Questions connexes