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.
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.
Visual Studio. NET'i başlatın ve sonra da yeni bir Visual C# Windows uygulaması) projesi oluşturun.
Iki Düğme) denetimi, varsayılan form, Form1 araç kutusundan sürükleyin.
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.
Aşağıdaki kodu Code penceresinin en üstüne ekleyin:
using System.Data;
using System.Data.SqlClient;
using System.IO;
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();
}
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();
}
Derlemek ve bu uygulamayı çalıştırmak için F5 tuşuna basın.
SQL Server, Resim alanına resim C:\WinNT\Gone Fishing.bmp, yüklenemedi (dosyadan) veritabanına kaydet ' i tıklatın.
SQL Server görüntü alanından veri geri bir dosyaya kaydetmek için (veritabanından) bir dosyaya kaydet ' i tıklatın.
Ö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/
)
Bu makaleyi kullanmak için ne kadar kişisel çaba harcadınız?
Çok az
Az
Orta
Fazla
Çok fazla
Bu bilgiyi geliştirmemiz için nedenleri ve bu konuda neler yapabileceğimizi paylaşın
Teşekkürler! Görüşleriniz, destek içeriğimizi geliştirmemize yardımcı olmak için kullanılmaktadır. Diğer yardım seçenekleri için, lütfen Yardım ve Destek Giriş Sayfasını ziyaret edin.