Artigo: 309158 - Última revisão: quarta-feira, 14 de Julho de 2004 - Revisão: 4.3

Como ler e escrever dados BLOB utilizando ADO.NET com o Visual C# .NET

Dica do SistemaEste artigo aplica-se a um sistema operativo diferente do que está a utilizar. Foi desactivado o conteúdo do artigo, que pode não ser relevante para si.

Nesta página

Expandir tudo | Reduzir tudo

Sumário

GetChunk e os métodos AppendChunk não estão disponíveis no ADO.NET colunas DataReader , DataSet colunas ou parâmetros de comandos . Este artigo descreve como utilizar o Visual C# .NET para ler e escrever objectos grandes binários (BLOB) campos.

Requisitos

A lista seguinte descreve o hardware recomendado, software, infra-estrutura de rede e service packs são necessários:
  • Microsoft Windows 2000 Professional, Windows 2000 Server, Windows 2000 Advanced Server ou Windows NT 4.0 Server
  • Microsoft Visual Studio .NET
  • Microsoft SQL Server

Criar o projecto

  1. Adicione uma tabela denominada MyImages para base de dados do SQL Server Adamastor . Inclua os seguintes campos no índice:
    • Campo de identidade com o nome "ID" do tipo Int .
    • Campo denominado "Descrição" do tipo VarChar com um comprimento de 50.
    • Campo denominado "ImgField" do tipo de imagem .

  2. Iniciar Visual Studio .NET e, em seguida, crie um novo projecto de aplicação do Visual C# Windows.
  3. Arraste dois controlos do botão da caixa de ferramentas para o formulário predefinido, Form1.
  4. Na janela Propriedades, altere a propriedade texto de Button1 para Guardar a base de dados (a partir de ficheiro) e, em seguida, altere a propriedade texto de Button2 para Guardar para ficheiro (a partir da base de dados) .
  5. Adicione o seguinte código no início da janela Code:
    using System.Data;
    using System.Data.SqlClient;
    using System.IO;
    					
  6. Faça duplo clique Button1 e, em seguida, adicione o seguinte código ao processador de eventos Button1_Click .

    Nota UID < nome de utilizador > tem de ter permissões para efectuar estas operações na base de dados.
    {
    SqlConnection con = new SqlConnection("Server=Darkover;uid=<username>;pwd=<strong password>;database=northwind");
    SqlDataAdapter da = new SqlDataAdapter("Select * From MyImages", con);
    SqlCommandBuilder MyCB = new SqlCommandBuilder(da);
    DataSet ds = new DataSet("MyImages");
    
    da.MissingSchemaAction = MissingSchemaAction.AddWithKey;
    FileStream fs = new FileStream(@"C:\winnt\Gone Fishing.BMP", FileMode.OpenOrCreate, FileAccess.Read);
    			
    byte[] MyData= new byte[fs.Length];
    fs.Read(MyData, 0, System.Convert.ToInt32(fs.Length));
    			
    fs.Close();
    			
    da.Fill(ds,"MyImages");
    				
    DataRow myRow;
    myRow=ds.Tables["MyImages"].NewRow();
    
    myRow["Description"] = "This would be description text";
    myRow["imgField"] = MyData;
    ds.Tables["MyImages"].Rows.Add(myRow);
    da.Update(ds, "MyImages");
    
    con.Close();
    		
    }
    					
  7. Faça duplo clique Button2 e, em seguida, adicione o seguinte código ao processador de eventos Button2_Click .

    Nota UID < nome de utilizador > tem de ter permissões para efectuar estas operações na base de dados.
    {
    SqlConnection con = new SqlConnection("Server=Darkover;uid=<username>;pwd=<strong password>;database=northwind");
    SqlDataAdapter da = new SqlDataAdapter("Select * From MyImages", con);
    SqlCommandBuilder MyCB = new SqlCommandBuilder(da);
    DataSet ds = new DataSet("MyImages");
    
    byte[] MyData= new byte[0];
    			
    da.Fill(ds, "MyImages");
    DataRow myRow;
    myRow=ds.Tables["MyImages"].Rows[0];
               
    MyData =  (byte[])myRow["imgField"];
    int ArraySize = new int();
    ArraySize = MyData.GetUpperBound(0); 
    
    FileStream fs = new FileStream(@"C:\winnt\Gone Fishing2.BMP", FileMode.OpenOrCreate, FileAccess.Write);
    fs.Write(MyData, 0,ArraySize);
    fs.Close();
    }
    					
  8. Prima F5 para compilar e executar a aplicação.
  9. Clique em Guardar a base de dados (a partir de ficheiro) ao carregar a imagem, C:\WinNT\Gone Fishing.bmp, no campo do SQL Server imagem .
  10. Clique em Guardar para ficheiro (a partir da base de dados) para guardar dados do SQL Server imagem campo novamente para um ficheiro.

A informação contida neste artigo aplica-se a:
  • Microsoft ADO.NET 1.1
  • Microsoft ADO.NET 1.0
  • Microsoft Visual C# .NET 2003 Standard Edition
  • Microsoft Visual C# .NET 2002 Standard Edition
Palavras-chave: 
kbmt kbhowtomaster kbio kbsqlclient kbsystemdata KB309158 KbMtpt
Tradução automáticaTradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 309158  (http://support.microsoft.com/kb/309158/en-us/ )