terça-feira, 16 de outubro de 2012

Como conservar uma imagem em um banco de dados SQL Server?


A maioria das aplicações web tem um monte de imagens utilizadas. Estas imagens são armazenadas geralmente em uma pasta do servidor web e são alcançadas dando o caminho relativo para o arquivo com respeito para a pasta raiz do site. . Lucro líquido de ser a plataforma para a aplicação distribuída agora, ASP.Net pode ser usado para armazenar imagens que são pequenas ser armazenadas em um banco de dados como SQL Server 2000 e versões posteriores. Para este efeito, o banco de dados SQL Server fornece um tipo de dados chamado "imagem" que é usado para armazenar imagens no banco de dados.

Para acessar estas imagens armazenadas no banco de dados que iremos utilizar as classes ADO.Net. Para saber como inserir e recuperar uma imagem no banco de dados SQL Server, você pode criar uma página. Aspx que pode ter um controle HtmlInputFile que é usado para selecionar o arquivo de imagem que é ser salvo no banco de dados. Você também pode criar um controle de caixa de texto no qual você pode adicionar o nome da imagem ou algum comentário ou um ID de imagem para a imagem salva. Use um controle de botão para carregar a imagem para o banco de dados. Namespaces como System.Data.SqlClient, System.Drawing, System.Data, System.IO e System.Drawing.Imaging são usadas nessa tarefa.

Na propriedade OnClick do botão, você pode escrever o seguinte código para fazer o upload de uma imagem para o banco de dados.

/ / Criar um byte [] para o arquivo de imagem que é carregado

int imagelen = Upload.PostedFile.ContentLength;

byte [] picbyte = new byte [imagelen];

Upload.PostedFile.InputStream.Read (picbyte, 0, imagelen);

/ / Insira o ID de imagem e imagem em banco de dados

SqlConnection conn = new SqlConnection (@ "dar a seqüência de conexão aqui ...");

tentar

{

conn.Open ();

SqlCommand cmd = new SqlCommand ("INSERT INTO ImageTable" + "(ImageField, ImageID) valores (@ pic, @ ImageId)", conn); cmd.Parameters.Add ("@ pic", picbyte);

cmd.Parameters.Add ("@ ImageId", lblImageID.Text);

cmd.ExecuteNonQuery ();

}

finalmente

{

Conn.Close ();

}

Você também pode escrever o código acima em uma função e chamar essa função no evento OnClick do botão de upload. O código dado acima executa as seguintes etapas do processo de inserção de uma imagem na base de dados.

1. Obter o comprimento do conteúdo da imagem que está a ser carregado

2. Criar um byte [] para armazenar a imagem

3. Leia o fluxo de entrada do arquivo postado

4. Criar um objeto de conexão

5. Abra o objeto de conexão

6. Criar um objeto de comando

7. Adicionar parâmetros para o objeto de comando

8. Executar o comando sql usando o método ExecuteNonQuery do objeto de comando

9. Feche o objeto de conexão

Para recuperar a imagem do banco de dados SQL que você pode realizar os seguintes passos.

1. Crie um objeto MemoryStream. O código pode ser algo como, MemoryStream mstream = new MemoryStream ();

2. Criar um objeto de conexão

3. Abrir a conexão com o banco de dados

4. Criar um objeto de comando para executar o comando para recuperar a imagem

5. Use o método do objeto de comando ExecuteScalar para recuperar a imagem

6. Moldar a saída do método ExecuteScalar ao do byte []
byte [imagem] = (byte []) command.ExecuteScalar ();

7. Escreva o mstream.Write fluxo (imagem, 0, image.Length);

8. Criar um objeto de bitmap para manter o fluxo de bitmap Bitmap = novo Bitmap (stream);

9. Defina o tipo de conteúdo para "image / gif" Response.ContentType = "image / gif";

10. Use o método Save do objeto bitmap para a saída da imagem para a OutputStream.
Bitmap.Save (Response.OutputStream, ImageFormat.Gif);

11. Feche a conexão

12. Feche a mstream.Close fluxo ();

Utilizando os passos acima, você pode recuperar e exibir a imagem do banco de dados para a página web.

Você pode usar estes algoritmos e aproveitar a "imagem" tipo de dados disponíveis no banco de dados SQLServer 2000 para armazenar pequenas imagens que correspondem a um determinado registro na tabela do banco de dados. Este método de armazenar evita a tediosa tarefa de seguir o caminho da pasta web, se as imagens são armazenadas em uma pasta web....

Nenhum comentário:

Postar um comentário