SO WIRD'S GEMACHT: Lesen und Schreiben von BLOB-Daten unter Verwendung von ADO.NET mit Visual C# .NET

SPRACHE AUSWÄHLEN SPRACHE AUSWÄHLEN
Artikel-ID: 309158 - Produkte anzeigen, auf die sich dieser Artikel bezieht
Dieser Artikel wurde zuvor veröffentlicht unter D309158
Dieser Artikel ist eine Übersetzung des folgenden englischsprachigen Artikels der Microsoft Knowledge Base:
309158 HOW TO: Read and Write BLOB Data Using ADO.NET with Visual C# .NET
Eine Version dieses Artikels für Microsoft Visual Basic .NET finden Sie unter 308042.
Hinweis: Die Verwendung der hier aufgeführten Informationen sowie Makro- oder Programmcodes geschieht auf Ihre eigene Verantwortung. Microsoft stellt Ihnen diese Informationen sowie Makro- und Programmlistings ohne Gewähr auf Richtigkeit, Vollständigkeit und/oder Funktionalität sowie ohne Anspruch auf Support zur Verfügung. Die zur Verfügung gestellten Makro- und Programmierungsbeispiele sollen lediglich exemplarisch die Funktionsweise des Beispiels aufzeigen.

Weitere Informationen zu den von Microsoft angebotenen Supportoptionen finden Sie unter folgender Internetadresse:
http://support.microsoft.com/
Achtung: Die in diesem Artikel aufgeführten Codebeispiele basieren auf den Beispieldatenbanken der englischsprachigen Versionen von Microsoft SQL Server oder Microsoft Access. Sie können diese Beispiele nicht mit den deutschsprachigen Beispieldatenbanken von SQL Server oder Access verwenden. Verwenden Sie entweder die englischsprachigen Versionen dieser Datenbanken, oder passen Sie die Codebeispiele so an, dass sie auf die deutschen Beispieldatenbanken und die deutschsprachigen Datenbankobjekte verweisen.
Bitte beachten Sie: Bei diesem Artikel handelt es sich um eine Übersetzung aus dem Englischen. Es ist möglich, dass nachträgliche Änderungen bzw. Ergänzungen im englischen Originalartikel in dieser Übersetzung nicht berücksichtigt sind. Die in diesem Artikel enthaltenen Informationen basieren auf der/den englischsprachigen Produktversion(en). Die Richtigkeit dieser Informationen in Zusammenhang mit anderssprachigen Produktversionen wurde im Rahmen dieser Übersetzung nicht getestet. Microsoft stellt diese Informationen ohne Gewähr für Richtigkeit bzw. Funktionalität zur Verfügung und übernimmt auch keine Gewährleistung bezüglich der Vollständigkeit oder Richtigkeit der Übersetzung.
Alles erweitern | Alles schließen

Auf dieser Seite

Zusammenfassung

Die Methoden GetChunk und AppendChunk sind in ADO.NET für DataReader-Spalten, DataSet-Spalten und Command-Parameter nicht verfügbar. Dieser Artikel beschreibt, wie Sie Visual C# .NET verwenden können, um BLOB-Felder zu lesen und zu schreiben.

Voraussetzungen

Im folgenden werden die empfohlene Hardware, Software, Netzwerkinfrastruktur und Service Packs beschrieben, die Sie benötigen:
  • Microsoft Windows 2000 Professional, Windows 2000 Server, Windows 2000 Advanced Server oder Windows NT 4.0 Server
  • Microsoft Visual Studio .NET
  • Microsoft SQL Server

Erstellen des Projekts

  1. Fügen Sie eine Tabelle mit dem Namen MyImages zu Ihrer SQL Server Northwind-Datenbank hinzu. Fügen Sie die folgenden Felder in die Tabelle ein:
    • Identitätsfeld mit dem Namen "ID" des Typs Int
    • Feld mit dem Namen "Description" des Typs VarChar mit der Länge 50
    • Feld mit dem Namen "ImgField" des Typs Image

  2. Öffnen Sie Visual Studio .NET und erstellen Sie ein neues Visual C# Windows-Anwendungsprojekt.
  3. Verwenden Sie die Toolbox, um zwei Button-Steuerelemente zum Standardformular Form1 hinzuzufügen.
  4. Ändern Sie im Eigenschaftenfenster die Eigenschaft Text von Button1 in In Datenbank speichern (von Datei) und die Eigenschaft Text von Button2 in In Datei speichern (von Datenbank).
  5. Fügen Sie den folgenden Code oben in das Codefenster ein:
    using System.Data;
    using System.Data.SqlClient;
    using System.IO;
  6. Doppelklicken Sie auf Button1, um einen Ereignishandler hinzuzufügen.
  7. Fügen Sie den folgenden Code zum Ereignishandler Button1_Click hinzu:
    {
    SqlConnection con = new SqlConnection("Server=Darkover;uid=sa;pwd=Password1;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();
    		
    }
  8. Doppelklicken Sie auf Button2, um einen Ereignishandler hinzuzufügen.
  9. Fügen Sie den folgenden Code zum Ereignishandler Button2_Click hinzu:
    {
    SqlConnection con = new SqlConnection("Server=Darkover;uid=sa;pwd=Password1;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();
    }
  10. Drücken Sie die Taste [F5], um die Anwendung zu kompilieren und auszuführen.
  11. Klicken Sie auf In Datenbank speichern (von Datei), um das Bild C:\WinNT\Angler.bmp in das Feld Image von SQL Server zu laden.
  12. Klicken Sie auf In Datei speichern (von Datenbank), um die Daten aus dem Feld Image von SQL Server zurück in eine Datei zu speichern.

Eigenschaften

Artikel-ID: 309158 - Geändert am: Donnerstag, 11. September 2003 - Version: 1.1
Die Informationen in diesem Artikel beziehen sich auf:
  • Microsoft ADO .NET (Bestandteil von .NET-Framework)
  • Microsoft Visual C# .NET 2002 Standard Edition
Keywords: 
kbhowto kbhowtomaster KB309158
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.

Ihr Feedback an uns

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com