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

[تنبيه - استخدم البحث :]كيف أقرىء صورة ن قاعدة البيانات وأضعها في مصفوفه نوعها Byte ؟

بدأه MS_SQL في 24 سبتمبر 2009 · 6 رد · 730 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكــم ورحمـة الله وبركاتــه ،،

اخواني عندي صورة في قاعدة البيانات أريد أن أقرىء الصورة من قاعدة البيانات وأضعها في مصفوفه نوعها byte ليتم عرضها في pictureBox ياريت لو حد يشرح لي الطريقة انا مش عايز كود وبس ...انا انه سؤال متكرر لكن بحثت ولم أجد شرح حيث يوجد في كل موقع تختلف عن الاخرى

فلسطين .. سوريا ..بورما ......وماذا بعد ؟!

سابقا

medo_programming

موقعي : www.alkhayat-it.com

مواضيع مهمه

-----------------------------------------------:

تعلم كل شىء عن الTriggers

#2

أظن أن أسهل طريقة هي تسجيل الصورة كمحتوى ملف على حقل في قاعدة البيانات و عند الحاجة تقوم بقراءة محتوى الحقل و حفظه في ملف تم تحميل الصورة من الملف إلى مربع الصورة PictureBox عن طريق الدالة LoadFromFile. هذا درس يتحدث عن كيفية تسجيل ملفات على قاعدة بيانات أتمنى أن تجد فيه ماتريد.

تحياتي...

تم تعديل هذه المشاركة بواسطة محمد رضى في 24 سبتمبر 2009 في 06:23

#3

الأخ الكريم/الأخت الكريمة

السلام عليكم ورحمة الله وبركاته.

مرحباً بكم في منتدى الفريق العربي للبرمجة

تحدثنا عن هذا الموضوع في أكثر من موضوع سابق، الرجاء استخدام البحث والإطلاع على المواضيع المثبتة.

كما يرجى التنبه وعدم تكرار المخالفة في مواضيعك القادمة، وهذا بمثابة إشعار للأهمية.

قواعد المشاركة

/index.php?showtopic=29343

شاكرين لكم حُسن تعاونكم

-------------------------------------

/index.php?showtopic=196377

إن قلت قال الله قال رسولـه همزوك همز المنكر المتعالي
أو قلت قد قال الصحابة والألـى تبعاً لهم بالقول والأعمال
أو قلت قـال الشافعي وأحمد و أبو حنيفة والإمام الغالي
صدوا عن وحي الإله ودينـه واحتالوا على حرام الله بالإحلال
يا أمةً لعبت بدين نبيها كتلاعب الصبيان في الأوحال
حاشا رسول الله يحكم بالهوى تلك إذاً حكومة الضلال

feed.1.gif

#4

شكرا أخي محمد رضى ....واسف يا أخ Ghost2010

لقد بحثت بالمواقع ولقيت طريقة سهلة وهي بتشتغل تماااااااام ولكن يظهر Exception حاولت أن احله بحذف ملف الصورة ولكن بلا فائدة

الكود :

Database connect = new Database();
			connect.Connect();
			/////////////////////////////////////
			SqlCommand loadDoctors = new SqlCommand(@"Select dbo.Doctors.*,dbo.DeptDoctors.DeptName 
													from Doctors INNER JOIN dbo.DeptDoctors
													on dbo.Doctors.DoctorCode=dbo.DeptDoctors.DoctorID
													INNER JOIN dbo.Departments
													ON dbo.Departments.DeptName=dbo.DeptDoctors.DeptName
													where (Doctors.DoctorCode+'-'+FullName=N'"+listBox1.SelectedItem.ToString()+"')", Database.Cnn);
			SqlDataReader myReader = loadDoctors.ExecuteReader();

			if (myReader.Read())
			{

				textBox8.Text = myReader["DoctorCode"].ToString();
				textBox9.Text = myReader["FullName"].ToString();
				textBox11.Text = myReader["Specialization"].ToString();
				textBox12.Text = myReader["Nationality"].ToString();
				if (myReader["Male"].ToString() == null)
				{
					textBox13.Text = "أنثى";
				}
				else
				{
					textBox13.Text = "ذكر";
				}
				textBox15.Text = myReader["Email"].ToString();
				textBox17.Text = myReader["Telephone"].ToString();
				textBox19.Text = myReader["CellPhone"].ToString();
				textBox21.Text = myReader["DateofBirth"].ToString();
				textBox23.Text = myReader["DeptName"].ToString();
				textBox22.Text = myReader["HireDate"].ToString();
				textBox20.Text = myReader["Rank"].ToString();
				textBox24.Text = myReader["Address"].ToString();
				textBox25.Text = myReader["Notes"].ToString();
				if (myReader["Picture"].ToString() != null)
				{
					if (File.Exists(Application.StartupPath + "\\image.jpg"))
					{
						File.Delete(Application.StartupPath + "\\image.jpg");

					}

					pictureBox8.Image = null;				  


					FileStream FS1 = new FileStream("image.jpg", FileMode.Create);

					byte[] pic = (byte[])myReader["Picture"];

					FS1.Write(pic, 0, pic.Length);

					FS1.Close();
					FS1 = null;
					pictureBox8.Image = Image.FromFile("image.jpg");

					connect.Disconnect();


				}

			}

الخطأ :

post-126189-1253846137_thumb.gif

ماهو الخطأ هنا

فلسطين .. سوريا ..بورما ......وماذا بعد ؟!

سابقا

medo_programming

موقعي : www.alkhayat-it.com

مواضيع مهمه

-----------------------------------------------:

تعلم كل شىء عن الTriggers

#5

مافيش حد يعرف حل الخطأ هذا ؟؟

فلسطين .. سوريا ..بورما ......وماذا بعد ؟!

سابقا

medo_programming

موقعي : www.alkhayat-it.com

مواضيع مهمه

-----------------------------------------------:

تعلم كل شىء عن الTriggers

#6

بغض النظر عن الكود اللى مكتوب فوق

اول حاجة

دى طريقة ادخال الصورة لقاعدة البيانات

		public void InsertImage()
		{
			OpenFileDialog open = new OpenFileDialog();

			if (open.ShowDialog() == DialogResult.Cancel) return;

			string FileName = open.FileName;

			if (FileName == "") return;

			string SQL = "UPDATE product SET Photo = "
			+ "(SELECT BulkColumn FROM OPENROWSET (BULK '" + FileName + "', SINGLE_BLOB) AS img) WHERE ProductId = "
						  + lstProducts.SelectedValue.ToString();

			DataAccess.Connector.ExecuteNonQuery(SQL);
		}

الطريقة دى بتستخدم OpenFiledialog علشان تختار المكان اللى الصورة موجودة فيه

وبعد كده بتبعت الباث بتاع الصورة لجملة SQL

فى الجملة دى انا عندى جدول اسمه products وفيه Field اسمه Photo

وببعت الصورة لـ ProductId معين

والـ ProductId ده انا جايبه من ListBox

السطر الأخير بينده Method انا عاملها علشان تنفذ اوامر الـ SQL

امسح السطر ده ونفذ جملة الـ SQL باى طريقة انت عارفها

تانى حاجة

ازاى تجيب الصورة اللى خزنتها فى قاعدة البيانات

اولاً الصورة بتتخزن فى شكل Bytes

يبئى لازم نعمل Method تحول الـ bytes لـ Image

		public System.Drawing.Image BytesToImage(byte[] Bytes)
		{
			MemoryStream ms = new MemoryStream(Bytes, 0, Bytes.Length);
			ms.Write(Bytes, 0, Bytes.Length);
			return System.Drawing.Image.FromStream(ms, true);
		}

بعد كده نعمل Method اللى هتجيب الصورة وتعرضها فى PicturBox

		public void DisplayImage()
		{
			string SQL = "SELECT photo FROM Product WHERE ProductId = "
						  + lstProducts.SelectedValue.ToString();

			object ImageObj = DataAccess.Connector.ExecuteScalar(SQL);
			byte[] ImageBytes;
			if (ImageObj != DBNull.Value)
			{
				ImageBytes = (byte[])ImageObj;
				System.Drawing.Image img = BytesToImage(ImageBytes);
				ImgProduct.Image = img;
				FitImage(ImgProduct, img);
			}
			else ImgProduct.Image = null;
		}

هنعمل Select للحقل اللى اسمه Photo

باى طريقة انت عارفها

المهم انك تجيب القيمة اللى موجودة فى الحقل ده وتحطها فى متغير من النوع Object

وبعد ما تتأكد ان الـ object ده مش فاضى هتحوله لـ Byte Array

وهتبعت الـ Byte Array دى للـ method اللى عملنها علشان نحولها لـ image

وتأخد الـ image اللى راجعة وتحطها فى الـ PictureBox ( انا مسميه ImgProduct)

لو تلاحظ الكود اللى فات بينده على Method اسمها FitImage ودى بتاخد الـ PictureBox وكمان الصورة

دى الهدف منها انها تضبط حجم الصورة علشان يبئى مناسب مع حجم الـ Picturebox

		public void FitImage(PictureBox picBox, System.Drawing.Image img)
		{
			double picBoxHeight = picBox.Height;
			double ImageHeight = img.Height;

			double picBoxWidth = picBox.Width;
			double ImageWidth = img.Width;

			double ratio;
			System.Drawing.Size newSize = img.Size;

			if (ImageHeight > picBoxHeight)
			{
				ratio = picBoxHeight / ImageHeight;
				newSize.Width = Convert.ToInt16(newSize.Width * ratio);
				newSize.Height = Convert.ToInt16(newSize.Height * ratio);
				ImageWidth = newSize.Width;
				ImageHeight = newSize.Height;
			}

			if (ImageWidth > picBoxWidth)
			{
				ratio = picBoxWidth / ImageWidth;
				newSize.Width = Convert.ToInt16(newSize.Width * ratio);
				newSize.Height = Convert.ToInt16(newSize.Height * ratio);
			}

			Bitmap NewBitmap = new Bitmap(img, newSize.Width, newSize.Height);
			img = NewBitmap;
			picBox.Image = img;
		}

بس يا سيدى ادى كل الحكاية

ملحوظة:

الطريقة دى مابتجبش الصورة وتحطها فى ملف مؤقت

دى بتجيب الصورة وتحطها فى الميمورى مباشرة بدون اى وسيط

Formerly PYTHON

الراجل الحر .. حر و لو زمانه جار

يمشى ف طريقه .. لا يخشى الشوك ولا لحجار

#7

مشكوووووووور أخي Python جزاك الله خيرا :lol:

فلسطين .. سوريا ..بورما ......وماذا بعد ؟!

سابقا

medo_programming

موقعي : www.alkhayat-it.com

مواضيع مهمه

-----------------------------------------------:

تعلم كل شىء عن الTriggers

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…