How To Read and Write BLOB Data by Using ADO.NET with Visual C# .NET

SUMMARY

The GetChunk and the AppendChunk methods are not available in ADO.NET on DataReader columns, DataSet columns, or Command parameters. This article describes how to use Visual C# .NET to read and write binary large object (BLOB) fields.

Requirements

The following list outlines the recommended hardware, software, network infrastructure, and service packs that are required:
Microsoft Windows 2000 Professional, Windows 2000 Server, Windows 2000 Advanced Server, or Windows NT 4.0 Server
Microsoft Visual Studio .NET
Microsoft SQL Server

Create the Project

1.Add a table named MyImages to your SQL Server Northwind database. Include the following fields in your table:
Identity field that is named "ID" of type Int.
Field that is named "Description" of type VarChar with a length of 50.
Field that is named "ImgField" of type Image.

2.Start Visual Studio .NET, and then create a new Visual C# Windows Application project.
3.Drag two Button controls from the toolbox to the default form, Form1.
4.In the Properties window, change the Text property of Button1 to Save to Database (from File), and then change the Text property of Button2 to Save to File (from Database).
5.Add the following code to the top of the Code window:
using System.Data;
using System.Data.SqlClient;
using System.IO;
					
6.Double-click Button1, and then add the following code to the Button1_Click event handler.

Note Uid <user name> must have permissions to perform these operations on the database.
{
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.Double-click Button2, and then add the following code to the Button2_Click event handler.

Note Uid <user name> must have permissions to perform these operations on the database.
{
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.Press F5 to compile and to run the application.
9.Click Save to Database (from File) to load the image, C:/WinNT/Gone Fishing.bmp, into the SQL Server Image field.
10.Click Save to File (from Database) to save the data from the SQL Server Image field back to a file.

APPLIES TO
Microsoft ADO.NET 1.1
Microsoft ADO.NET 1.0
Microsoft Visual C# .NET 2003 Standard Edition
Microsoft Visual C# .NET 2002 Standard Edition
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值