Makale numarası: 309158 - Son Gözden Geçirme: 14 Temmuz 2004 Çarşamba - Gözden geçirme: 4.3

Okuma ve yazma BLOB verileri, ADO.NET, Visual C# .NET ile birlikte kullanarak nasıl

Sistem İpucuBu makale, kullandığınızdan farklı bir işletim sistemine yöneliktir. Sizinle ilgili olmayabilecek makale içeriği devre dışı bırakıldı.

Bu Sayfada

Hepsini aç | Hepsini kapa

Özet

GetChunk ve AppendChunk yöntemi DataReader sütunları, DataSet sütunları veya komut parametreleri ADO.NET içinde kullanılamaz. Bu makalede, Visual C# .NET büyük ikili nesne (BLOB) alanları okuyup nasıl kullanılacağı açıklanır.

Gereksinimler

Aşağıdaki listede, gereksinim duyulan donanım, yazılım, ağ altyapısı ve hizmet paketleri önerilmektedir:
  • Microsoft Windows 2000 Professional, Windows 2000 Server, Windows Server veya Windows NT 4.0 Server 2000 Advanced
  • Microsoft Visual Studio. NET'i
  • Microsoft SQL Server

Proje oluşturma

  1. Northwind SQL Server veritabanınıza MyImages adlı bir tablo ekleyin. Aşağıdaki alanlar, tablonuzda şunlardır:
    • <a1>Tür</a1> ınt "No" adlı alan kimliği.
    • "Description" <a1>türü</a1> VarChar 50 uzunluğu olan adlı alan.
    • Alan Resim türünün "ImgField" olarak adlandırılır.

  2. Visual Studio. NET'i başlatın ve sonra da yeni bir Visual C# Windows uygulaması) projesi oluşturun.
  3. Iki Düğme) denetimi, varsayılan form, Form1 araç kutusundan sürükleyin.
  4. Properties penceresinde (dosyadan) veritabanına kaydetButton1 <a1>Text</a1> özelliğini değiştirin ve sonra gelen (veritabanı) bir dosyaya kaydetButton2 <a1>Text</a1> özelliğini değiştirin.
  5. Aşağıdaki kodu Code penceresinin en üstüne ekleyin:
    using System.Data;
    using System.Data.SqlClient;
    using System.IO;
    					
  6. Button1 ' ı çift tıklatın ve sonra da Button1_Click</a2> olay işleyicisine aşağıdaki kodu ekleyin.

    Not<a1>UID</a1> < kullanıcı adı > veritabanında bu işlemleri gerçekleştirmek için izinleriniz olmalıdır.
    {
    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. Button2 ' ı çift tıklatın ve sonra da Button2_Click olay işleyicisine aşağıdaki kodu ekleyin.

    Not<a1>UID</a1> < kullanıcı adı > veritabanında bu işlemleri gerçekleştirmek için izinleriniz olmalıdır.
    {
    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. Derlemek ve bu uygulamayı çalıştırmak için F5 tuşuna basın.
  9. SQL Server, Resim alanına resim C:\WinNT\Gone Fishing.bmp, yüklenemedi (dosyadan) veritabanına kaydet ' i tıklatın.
  10. SQL Server görüntü alanından veri geri bir dosyaya kaydetmek için (veritabanından) bir dosyaya kaydet ' i tıklatın.

Bu makaledeki bilginin uygulandığı durum:
  • Microsoft ADO.NET 1.1
  • Microsoft ADO.NET 1.0
  • Microsoft Visual C# .NET 2003 Standard Edition
  • Microsoft Visual C# .NET 2002 Standard Edition
Anahtar Kelimeler: 
kbmt kbhowtomaster kbio kbsqlclient kbsystemdata KB309158 KbMttr
Otomatik TercümeOtomatik Tercüme
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:309158  (http://support.microsoft.com/kb/309158/en-us/ )