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

ارجو المساعدة في احضار صورة للفورم

بدأه sabrin في 12 أبريل 2008 · 4 رد · 775 مشاهدة · في ADO.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

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

في البدية اريد ان يقوم المستخدم بأختيار الصورة من مجلد في السواقة مثلا

D:\

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

وشكرا

#2

تفضل اختي هذا هو الكود اللازم لفتح صوره من الدرايف


Try
With OpenFileDialog1
.Filter = "Images | *.bmp;*.tif;*.jpg;*.gif;*.png"
If .ShowDialog() = Windows.Forms.DialogResult.OK Then
sFilename = .FileName
imgLogo.Image = Image.FromFile(sFilename)
End If
End With
Catch es As Exception
MessageBox.Show(es.Message)
Finally

End Try
Dim sFilename As String = ""

طبعاً لابد من اضافة دايلوق للفتح

والله الموفق

اللهم اكتب لنا صيام شهر رمضان وقيامه وأغفر لنا وأرحمنا ياأرحم الراحمين

م . عبدالرقيب أحمد

المملكة العربية السعوديه - جده

max1424@Hotmail.com

#3

السلام عليكم

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

وشكرا لتعاونك

#4

ياهلا فيك لا شكر على واجب

واجب علي مساعدة اخواني الكرام وانساتي الجميلات (على قول الاستاذ تركي العسيري :D )

طبعاً لابد قبل حفظ اي صورة في قاعدة البيانات من تحويل الصورة الى نوع بايت ومن ثم نستطيع حفظها

كالتالي :

 Dim imgTemp As Image = imgLogo.Image
            Dim byteBLOBData() As Byte = Nothing
            If Not IsNothing(imgTemp) Then
                Dim ms As MemoryStream = New MemoryStream
                imgTemp.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg)
                ReDim byteBLOBData(ms.Length - 1)
                ms.Position = 0
                ms.Read(byteBLOBData, 0, ms.Length)
         End If

الان نقوم بعملية الحفظ :

 Dim objcmd As New SqlCommand(@img, objCon)
            Dim pic As SqlParameter = New SqlParameter("@img", SqlDbType.Image)
            pic.Value = byteBLOBData
            objcmd.Parameters.Add(pic)
             objcmd.ExecuteNonQuery()

بقي الان انهاء كتابة الستورد بروسجر المناسب لهذه العملية

طبعاً تحديد العملية هل هي ادراج او تعديل تتم في الاستورد بروسجر

وبهذا نكون قد انتهينا من عملية التخزين الممله

والله الموفق

اللهم اكتب لنا صيام شهر رمضان وقيامه وأغفر لنا وأرحمنا ياأرحم الراحمين

م . عبدالرقيب أحمد

المملكة العربية السعوديه - جده

max1424@Hotmail.com

#5

السلام عليكم

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

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

Dim dt As DataTable

Dim dr As DataRow

dt = ds.Tables("a")

dr = ds.Tables("a").NewRow

Dim m As New System.IO.MemoryStream()

pic.Image.Save(m, pic.Image.RawFormat)

Dim f() As Byte

f = m.GetBuffer()

m.Close()

dr.Item(1) = f

ds.Tables("a").Rows.Add(dr)

Dim x As New SqlCommandBuilder(da)

da.Update(ds, "a")

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

Dim f() As Byte

f = r.Item(1)

f = ds.Tables("a").Rows(0).Item("picture")

Dim m As New System.IO.MemoryStream(f)

pic.Image = Image.FromStream(m)

وسؤالي هو اذا اريد ان اعدل الصورة التي احضرتها واحفظها مرة اخرى كيف ستكون جملة التعديل

ومرة اخرى سامحني على الازعاج بس لان التعامل مع الصور تاعبني

وشكرا لتعاونك

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

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

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

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

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