 ASP.NET 
-  Trabalhando com BLOBs no SQL Server II
   ASP.NET 
-  Trabalhando com BLOBs no SQL Server II
Na primeira parte definimos nosso objetivo e criamos o banco de dados Album.mdf , a tabela Fotos e a classe Foto; agora vamos criar a classe FotoHelper que será responsável pelas tarefas relacionadas com o acesso e a manutenção de dados do nosso Álbum de fotos.
Vamos então incluir uma nova classe no projeto. Clique com o botão direito sobre a pasta App_Code e selecione Add New Item;
Selecione o template Class e informe o nome FotoHelper.vb ;
|  | 
Esta classe deverá possuir os seguintes métodos:
Além disso devemos definir um construtor na classe para obter a string de conexão com o banco de dados que estará armazenada no arquivo de configuração Web.Config.
Antes de iniciar vamos declarar os namespaces para termos acesso as classes da ADO.NET e o provedor SQL pois estamos usando o banco de dados SQL Server:
Imports
System.DataPara que o valor da string de conexão com o banco de dados esteja disponível no projeto vamos criar uma variável estática (Shared) e definir um construtor Shared com o seguinte código:
Shared sConexaoBD As String| Shared Sub New() sConexaoBD = ConfigurationManager.ConnectionStrings("conexaoBD").ConnectionString End Sub | 
Agora vamos definir o método Inserir na mesma classe:
| Public Shared Function Inserir(ByVal f As Foto) As Integer 'cria uma nova conexao e um objeto command Dim cnn As New SqlConnection(sConexaoBD)         Dim cmd As New SqlCommand()
        'define a conexão e a string sql para incluir dados na tabelacmd.Connection = cnn         cmd.CommandText = "INSERT INTO Fotos(titulo,descricao,foto) values(@titulo,@descricao,@foto)"
        'Define e obtem os valores dos parametros        Dim titulo As New SqlParameter("@titulo", f.Titulo)        Dim descricao As New SqlParameter("@descricao", f.Descricao)        Dim foto As New SqlParameter("@foto", SqlDbType.VarBinary)        foto.Value = f.FotoDados
        'inclui os valores dos parametroscmd.Parameters.Add(titulo) cmd.Parameters.Add(descricao)         cmd.Parameters.Add(foto)
        'abre a conexão e executa a consulta SQL retornando um inteiro : 1 se bem sucedido -1 se houver errocnn.Open() Dim i As Integer = cmd.ExecuteNonQuery() 'fecha a conexão cnn.Close() 'retorna o valor obtido na execução da consulta sql via Return i End Function | 
O código acima já esta comentado mas eu quero que você atente para os seguintes detalhes:
|  -Além do método acima podemos usar os 
      seguintes métodos: - ExecuteReader - Retorna um 
      DataReader; Retorna um conjunto de registro via instrução SQL ou 
      stored Procedure; | 
Agora vamos ao método Atualizar :
| Public Shared Function Atualizar(ByVal f As Foto) As Integer 'cria uma nova conexao e um objeto command Dim cnn As New SqlConnection(sConexaoBD)         Dim cmd As New SqlCommand()
        'define a conexão e a string sql para incluir dados na tabelacmd.Connection = cnn         cmd.CommandText = "UPDATE fotos SET titulo=@titulo,descricao= @descricao,foto=@foto where fotoid=@fotoid"
        'Define e obtem os valores dos parametros        Dim titulo As New SqlParameter("@titulo", f.Titulo)        Dim descricao As New SqlParameter("@descricao", f.Descricao)        Dim foto As New SqlParameter("@foto", SqlDbType.VarBinary)        foto.Value = f.FotoDados
        Dim fotoid As New SqlParameter("@fotoid", f.FotoID)
        'inclui os valores dos parametroscmd.Parameters.Add(titulo) cmd.Parameters.Add(descricao) cmd.Parameters.Add(foto)         cmd.Parameters.Add(fotoid)
        'abre a conexão e executa a consulta SQL retornando um inteiro : 1 se bem sucedido -1 se houver errocnn.Open() Dim i As Integer = cmd.ExecuteNonQuery() 'fecha a conexão cnn.Close() 'retorna o valor obtido na execução da consulta sql via Return i End Function 
 | 
No método Atualizar estamos usando a instrução SQL para UPDATE SET para atualizar os dados da tabela e precisamos do parâmetro fotoid que é o código da foto pois queremos atualizar somente um registro cujo código seja igual ao informado.
Agora vamos ao método Deletar:
| Public Shared Function Deletar(ByVal fotoid As Integer) As Integer 'cria uma nova conexao e um objeto command Dim cnn As New SqlConnection(sConexaoBD)         Dim cmd As New SqlCommand()
        'define a conexão e a string sql para incluir dados na tabelacmd.Connection = cnn cmd.CommandText = "DELETE FROM fotos where fotoid=@fotoid"         'Define e obtem os valores dos parametros
        Dim codigo As New SqlParameter("@fotoid", fotoid)        cmd.Parameters.Add(codigo)
        'abre a conexão e executa a consulta SQL retornando um inteiro : 1 se bem sucedido cnn.Open()         Dim i As Integer = cmd.ExecuteNonQuery()
        'fecha a conexãocnn.Close() 'retorna o valor obtido na execução da consulta sql via Return i End Function 
 | 
Este método usa a instrução SQL DELETE FROM para excluir uma foto da tabela de Fotos com base no código da foto (fotoid) informado.
Estão faltando dois métodos que devemos definir e eu vou deixar isso para o próximo artigo...
Aguarde no próximo artigo : ASP.NET - Trabalhando com BLOBs no SQL Server III
Até mais ver...
referências:
José Carlos Macoratti