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

ربط حقل صور في قاعدة بيانات ب PictureBox

مغلق
بدأه Fikou-sama في 20 يونيو 2007 · 15 رد · 2,553 مشاهدة · في ADO.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بينما كنت أقرأ بعض المواضيع المتعلقة باستعراض و إدخال صور في قاعدة البيانات .. لاحظت عدم وجود طريقة مباشرة لربط PictureBox بقاعدة البيانات

فهل يمكن ربط PictureBox عن طريق DataBindings مع أني حاولت باستخدام الكود التالي :

Private Sub Form1_Load(ByVal sender As System.Object . . .

 Com = New SqlCommand("Select * From Table1", Con)
		A = New SqlDataAdapter(Com)
		Comb = New SqlCommandBuilder(A)
		DS.Clear()
		A.Fill(DS, "Table1")

Imag = CType(DS.Tables(0).Rows(x).Item("Picture"), Byte())
		Dim M As New MemoryStream(Imag)

		With PictureBox1
			.Image = Image.FromStream(M)
			.SizeMode = PictureBoxSizeMode.StretchImage
		End With

PictureBox1.DataBindings.Add(New Binding("Image", DS, "Table1.Picture"))

End Sub

لكن لم يعطيني نتيجة ...

فالمرجو التعديل على الكود و شكرا

مقالاتي في VB.NET وبرامجي على موقعي الجديد :

#2

السلام أخي الكريم/

لدي سؤال، لماذا يتم تخزين الصورة داخل قاعدة البيانات؟

لماذا لا يكون التخزين بأسم الملف وذلك أخف على قاعدة البيانات لديك. لأن لو كان pجم الصورة الواحدة 1MB (كما الحال مع صور الــ BMP) وعندك 100 صورة، بتزيد من حجم قاعدة البيانات 100MB

مجرد رأي و -waf

تم تعديل هذه المشاركة بواسطة Feras Nasser في 20 يونيو 2007 في 19:50

سبحان الله وبحمده عدد خلقه ورضا نفسه وزنة عرشه ومداد كلماته

#3

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

مقالاتي في VB.NET وبرامجي على موقعي الجديد :

#4

السلام عليكم

إذا كان العمل على 2005 فالطريقة كالتالي:

  With Me.picBoxImage
			.DataBindings.Clear()
			.DataBindings.Add( _
			New Binding("Image", Me.MainBindingSource, "Image", True))
		End With

أما عن 2003 فعلى هذا الرابط

بالنسبةِ لموضع الصورة فقاعدة البيانات هي الاسلم , اما عن حجم الصورة فهذا يعتمد على التحقق من حجمها قبل وضعها في قاعدة البيانات

يعني المسألة تحتاج الى ورقة و قلم قبل البث في العمل.

في المثال يتضح المقال

#5

مشكور على الرد و لكن الكود السابق يعطيني خطأ في Me.MainBindingSource ...هل أعرف BindingSource جديدة أم مادا ...

ملاحظة : أخي شهاب أظن أن الموضوع متعلق بقواعد البيانات و هدا القسم مخصص لقواعد البيانات .. فهل لي أن أعرف لمادا تم نقل الموضوع ؟؟

مقالاتي في VB.NET وبرامجي على موقعي الجديد :

#6

آسف أخي شهاب لم ألاحظ أني وضعت هدا الموضوع في قسم Microsoft Visual Basic.NET ... لأنه بعد نقل الموضوع الى هدا القسم ظننت بأني وضعت الموضوع هنا في البداية ... آسف مرة أخي شهاب

مقالاتي في VB.NET وبرامجي على موقعي الجديد :

#7
اقتباس
مشكور على الرد و لكن الكود السابق يعطيني خطأ في Me.MainBindingSource ...هل أعرف BindingSource جديدة أم مادا
بلا شك نعم تغير MainBindingSource بالعنصر المرتبط بالجدول التي يحتوي على عامود الصور المراد عرضها في

Picture box

في المثال يتضح المقال

#8

جزاك الله خيرا أخي شهاب ...

مقالاتي في VB.NET وبرامجي على موقعي الجديد :

#9

السلام أخواني/

اقتباس
أما بالنسبة لحجم الصور فقاعدة البيانات وجدت لكي تحتوي على بيانات مهما كان حجمها

عزيزي كلامك مضبوط ولكن لا ينطبق على ملفات الـــ Large Binary وهذا مخالف لأفضل الممارسات المتبعة.

وهذا اقتباس لبعض الخبراء في المجال:

اقتباس
If you have a choice, do not store binary files, image files (Binary large objects or BLOBs) etc. inside the database. Instead store the path to the binary/image file in the database and use that as a pointer to the actual binary file. Retrieving, manipulating these large binary files is better performed outside the database and after all, database is not meant for storing files.

موقع يتحدث عن أفضل الممارسات

وهذا نقطة ينبغي مراعتها عند التعامل مع الصور:

اقتباس
The size of such data, however, can severely hamper network performance when large queries are run

ولك جزيل الشكر أخي الكريم وكل التقدير على جهودكم، ولكن رغبت في توضيح ذلك،،،،،،،

-waf

أخوك فراس ناصر

سبحان الله وبحمده عدد خلقه ورضا نفسه وزنة عرشه ومداد كلماته

#10

وأرجوا أخي الكريم القيام بتجربه صغيره، وهي تخزن صوره قي قاعده البيانات وصوره أخرى على Filesystem واستدعاء كل واحده على حدى من برنامج الخاص ، وقم بمقارنه الوقت اللازم لتحميل كل صوره، ستجد فرق كبير في الأداء

وشكرا

سبحان الله وبحمده عدد خلقه ورضا نفسه وزنة عرشه ومداد كلماته

#11

طيب .. و مادا عن أمن قاعدة البيانات إدا كانت تحتوي على صور مشاريع و مستندات شركة ما ؟؟ فهل تعتقد أن هدة الشركة ستفرط في حماية أسرارها بالإعتماد على ملفات بدل قاعدة بيانات ؟؟

مقالاتي في VB.NET وبرامجي على موقعي الجديد :

#12

مرحبا بالغالي وأخي الكريم،

لحماية الملفات يتطلب تطبق بعض الإجراءات الأمنية عن طريق Windows Server ما دام المستفيد من النظام شركة ما. وذلك من خلال وضع جميع الصور في مجلد معين ويكن مرتبط AD ويتم التحقق من الصلاحيات المخلوه للمستحدم بالوصول للصور باستخدام خاصية SSPI في الــ Windows. هذا في حال كانت الواجه التطبيق Windows Application.

نفترض عندنا Image Control وسط الــ Win Form ويكون المسار مثلا ServerName\image.jpg\\ إذا كان الــ User مسجل على Domain له الصلاحة تظهر الصوره له. واذا كان غير مصرح له، البرنامج حيرمي Exception ويتم نحوير الرسالة للمستخدم بأنة لا يملك صلاحيات للوصول لصوره على شكل رالة نصية.

أما في حال أستخدام ASP.NET فأنت في بر الأمان حيث يكون IIS السريفر الوحيد المصرح له الوصول لصور في سرفر الصور، ويتم تفويض السريفر بجلب الصوره وتكوين ASP Page وفيها كل المعلومات.

وبذلك تعطي الخباز خبزه، من خلال جعل كل محتوى من النظام يتولى ما هو مخصص له، فقاعدة البيانات فيها البيانات وهي مسؤولة عن إدارتها، والــ Filesystem وخاصية الــ File Share مسؤولة عن الصورة.

وقد ذكرت أخي الكريم نقطة مستندات وهي حالة أخرى في حال عدم تخزين المعلومات التي تحتوياها بالتفصيل في جداول (تخزين المستند كما هو على شكل Bin)، يستلزم وجود نظام أخر وهي Content Managment System أو نظام إدارة المحتويات مثل Alchemy. وهو أقوى بألف مره من تخزين الملفات والصور أو أي ملف يخطر في بالك، الــأمن في هذه الأنظمة هي أهم عنصر.

ملاحظة خاشة عرض لا تدقق: النظام Alchemy يستخدم في أصغر شركة إلى شركة NASA في مركباتها الفضاء لتخزين الــ Manuals ودليل الإجراءات. يقولون بطلنا سلفه الورق كل إلي نحتاجة موجود في CMS.

ولك جزيل الشكر والتقدير وفائق الإحترام،،،،

أخوك فراس ناصر

سبحان الله وبحمده عدد خلقه ورضا نفسه وزنة عرشه ومداد كلماته

#13

شكرا على الإفادة ..

مقالاتي في VB.NET وبرامجي على موقعي الجديد :

#14

السلام عليكم

الاخ فراس فهمت من كلامك أن نحفظ مسار الصورة في قاعدة البيانات

ولكن هل ممكن ان توضح أكثر:

يعني كيف نستدعي الصورة من قاعدة البيانات ومانوع الحقل الدي سنحفظ فية المسار إدا كنا نعمل على SQL SERVER2005وVISULAL STUDIO 2005

مع الشكر الجزيل

#15
اقتباس
ومانوع الحقل

نص

اقتباس
كيف نستدعي الصورة من قاعدة البيانات

عن طريق SqlCommand وتتعامل مع الحقل كنص، ويتم تمرير المسار للصور لأداة العرض، مثل ImageBox أو ASP Page، حسب تصميمك للنظام.

ولك جزيل الشكر أخي الكريم

سبحان الله وبحمده عدد خلقه ورضا نفسه وزنة عرشه ومداد كلماته

#16

أشكرك أخي على الرد

جعلة الله في ميزان حسناتك

هذا الموضوع مغلق.

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

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

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

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

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