NET Programming.

چگونگی خواندن عکس از پایگاه داده Sql Server

در مقاله قبلی درباره چگونگی ذخیره کردن عکس در دیتابیس Sql Server به آدرس زیر مطالبی را بیان کردم:

چگونگی ذخیره کردن عکس در پایگاه داده Sql Server

اما حالا می خواهم درباره چگونگی خواندن عکس از دیتابیس و نمایش آن در یک picture box صحبت کنم.

در ابتدا مفروضات مسئله :
فرض می کنم در پایگاه داده Sql Server دیتابیسی با نام School و جدولی به نام Student دارم که فیلد primary key این جدول با نام stcode و فیلدی که تصویر دانش اموز را نگه داری می کند از نوع image و با نام stimage است و در این جدول دانش آموزی با کد 1 اطلاعات آن وارد شده است.

در ابتدا تابعی به صورت زیر تعریف می کنم :



C#.NET
private Image ConvertByteToImage(byte[] ImageByte)
{
   MemoryStream ms = new MemoryStream(ImageByte);
   Image img;
   img = Image.FromStream(ms);
   return img;
}


VB.NET
Private Function ConvertByteToImage(ByVal ImageByte As Byte()) As Image
   Dim ms As New MemoryStream(ImageByte)
   Dim img As Image
   img = Image.FromStream(ms)
   Return img
End Function


این تابع کدهای باینری مربوط به عکس ذخیره شده را گرفته و با استفاده از کلاس MemoryStream آنرا به صورت بافر در می آورد و با استفاده از متد FromStream از کلاس Image بافر را به تصویر تبدیل می کنیم.

و حالا خواندن عکس از دیتابیس :



C#.NET
SqlConnection con = new SqlConnection();
con.ConnectionString = "Data Source=.;Initial Catalog=School;;Integrated Security=true";
con.Open();
SqlCommand com = new SqlCommand();
com.Connection = con;
com.CommandText = "Select stimage from Student1 where stcode='1'";
SqlDataReader reader = com.ExecuteReader();
reader.Read();
pic1.Image = ConvertByteToImage((byte[])reader.GetValue(0));
con.Close();


VB.NET
Dim con As New SqlConnection
con.ConnectionString = "Data Source=.;Initial Catalog=School;Integrated Security=true"
con.Open()
Dim com As New SqlCommand
com.Connection = con
com.CommandText = "Select stimage from Student where stcode='1'"
Dim reader As SqlDataReader = com.ExecuteReader
reader.Read()
pic1.Image = ConvertByteToImage(reader.GetValue(0))
con.Close()


pic1 نام کنترل pictureBox برای نمایش تصویر است.

دستورات بالا را در رویداد کلیک یک button بنویسید.

نکته : قبل از نوشتن دستورات بالا فضای نامی System.IO ، System.Data.Sql و System.Data.SqlClient را به پروژه خود اضافه کنید.



دیدگاه شما :

نام             

ایمیل         

وب سایت  

پیام
                  

Warning: mysql_connect() [function.mysql-connect]: Can't connect to MySQL server on '207.158.5.107' (10060) in C:\HostingSpaces\mobtaker\mobtakercode.com\wwwroot\2009.php on line 275
نمی تواند به سرویس دهنده متصل شودCan't connect to MySQL server on '207.158.5.107' (10060)