الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

كيفية حفظ صورة فى قاعدة بيانات

بدأه mr_boss في 15 سبتمبر 2006 · 6 رد · 2,925 مشاهدة · في ADO.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

أريد حفظ صور فى قاعدة بيانات SQL عن طريق فورمة عن طريق إعطاء Image Path فى الفورمه

وهى تقوم بحفظها عن طريق Stored Procedure ، وماهى DataType المناسبة لحفظها ، وشكراً

Flag_of_Palestine.gif
#2

اخفظ اسم الصوره بس في الداتا بيز وحط الصوره نفسها في فولدر في المشروع اسمو مثلا image

وبس داتا تايب بتاعتها varchar عادي

وفوق كل ذي علم عليم

والله اعلم

الملك ------>محمد ابو تريكة

abutreika.jpg

على اسم مصر التاريخ يقدر يقول ما شاء

أنا مصر عندي أحب وأجمل الأشياء

باحبها وهي مالكه الأرض شرق وغرب

وباحبها وهي مرميه جريحة حرب

باحبها بعنف وبرقة وعلى استحياء

واكرهها وألعن أبوها بعشق زي الداء

واسيبها واطفش في درب وتبقى هي ف درب

وتلتفت تلقيني جنبها في الكرب

والنبض ينفض عروقي بألف نغمة وضرب

على اسم مصر

#3

الطريقة كالتالي :

أنشئ حقل في Database من نوع Binary اسمه stream

ثم استعمل الكود التالي لحفظ الصورة

 

OpenFileDialog op=new OpenFileDialog();
op.Filter ="Bitmap Files (*.BMP)|*.bmp |Gif (*.Gif)|*.gif|JPEG (*.JPG*.JPEG;*.JPE;*.JFIF)|*.JPG*.JPEG;*.JPE;*.JFIF|TIFF (*.TIF;*.TIFF)|*.TIF;*.TIFF|ICO (*.ICO)|*.ICO  ";
op.ShowDialog();
if(!(op.FileName==""))
{

   byte[] content = ReadBitmap2ByteArray(op.FileName);
   StoreBlob2DataBase(content);
}





تحويل الصورة لبايت
protected static byte[] ReadBitmap2ByteArray(string fileName)
{
  using(Bitmap image = new Bitmap(fileName))
  {
 MemoryStream stream = new MemoryStream();
 image.Save(stream, System.Drawing.Imaging.ImageFormat.Bmp);
 return stream.ToArray();
  }
}

تخزين الصورة في قاعدة البيانات
protected static void StoreBlob2DataBase(byte[] content)
{
 SqlConnection con =new   SqlConnection (DbConnectioncls.ConnectionString());
 DbConnectioncls.Open_Connection(con);
		//con.Open();
 try
  {
	SqlCommand insert = new SqlCommand(
	"update Company_Info set [stream] = (@image) where company_id=1",con);
	 SqlParameter imageParameter = 
	 insert.Parameters.Add("@image", System.Data.SqlDbType.Binary);
	 imageParameter.Value = content;
	 imageParameter.Size  = content.Length;
	 insert.ExecuteNonQuery();
  }
 finally
  {

		DbConnectioncls.Close_Connection(con);

  }
}

والكود التالي لقرائتها من قاعدة البيانات

 

string  sqlstr;
sqlstr="select * from  Company_Info_Vw where  Company_ID = '1'";
SqlCommand DBCmd = new SqlCommand (sqlstr,  con		);

SqlDataReader dr =null;
dr =  DBCmd.ExecuteReader();
if (dr.HasRows)  
{
 while (dr.Read())
 {

   if (dr["stream"] != DBNull.Value )
		   {
			byte[] content = (byte[])dr["stream"];
   MemoryStream stream = new MemoryStream(content);
   Bitmap image = new Bitmap(stream);

				 pictureBox1.Image = image;
	}
	else
		pictureBox1.Image = null;

إن شاء الله أكون قد وصلت المعلومة

يا أيها الناس قولو لا إله إلا الله تفلحوا وتملكوا بها العرب وتذل لكم العجم وإذا آمنتم كنتم ملوكا في الجنة

#4

أشكركم أخوتى الكرام على الاستجابة السريعة ، جزاكم الله خيراً

Flag_of_Palestine.gif
#5

جزاكم الله خيرا

فعلا موضوع مهم و مفيد جدا

سأل الممكن المستحيل اين تسكن؟ قال في عقول الضعفاء

اشهد أن لا اله الا الله و اشهد أن محمداًً رسول الله

#6

مشكور جدا الحل يعمل بشكل جيد جدا

#7
mr_boss كتب:
أشكركم أخوتى الكرام على الاستجابة السريعة ، جزاكم الله خيراً

اريد ان اعرف كيف اظهر الصورة فى كريستال ريبورت

مواضيع مشابهة