السلام عليكم شباب
حاولت اكتر من مره اضافة صور فى قاعدة البيانات ولا لكن فشلت و الحمد الله
عملت الكود ده بس مش عارف الغلاط فين ده الكود
كود :
con.Open()
Dim da As New System.Data.SqlClient.SqlDataAdapter("select * from Table3", con)
Dim ds As New DataSet
Dim cm As New System.Data.SqlClient.SqlCommandBuilder(da)
da.Fill(ds, "Table3").ToString()
Dim dr As DataRow = ds.Tables("Table3").NewRow
Dim ms As New System.IO.MemoryStream
PictureBox1.Image.Save(ms, PictureBox1.Image.RawFormat)
Dim rawdata() As Byte = ms.GetBuffer
dr.Item("img") = rawdata
ds.Tables("Table3").Rows.Add(dr)
da.Update(ds, "Table3")
con.Close()
MsgBox("Saved!")
طبعا نوع الحقل mage
و قاعدة البيانات على موقع somee
ما الحل :confused::confused:
يَامَعْشَرَ الْجِنِّ وَالإِنسِ إِنْ اسْتَطَعْتُمْ أَنْ تَنفُذُوا مِنْ أَقْطَارِ السَّمَاوَاتِ وَالأَرْضِ فَانفُذُوا لا تَنفُذُونَ إِلاّ بِسُلْطَانٍ(33) سورة الرحمن
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim sql As String = " INSERT INTO [Table3] ( [img] ) VALUES ( @img ) "
Dim com As New SqlClient.SqlCommand(sql, con) com.Parameters.AddWithValue("@img", ImageToByte(Me.PictureBox1.Image))
con.Open() com.ExecuteNonQuery() con.Close()
MsgBox("تمت الإضافة بنجاح")
End Sub
#Region " ImageToByte " Public Function ImageToByte(ByVal image As Image) As Object Dim imgByte As Byte() = Nothing Dim imgStream As New IO.MemoryStream() On Error Resume Next image.Save(imgStream, Imaging.ImageFormat.Png) Return imgStream.ToArray() End Function #End Region
#Region " ImageToByte "
Public Function ImageToByte(ByVal image As Image) As Object
Dim imgByte As Byte() = Nothing
Dim imgStream As New IO.MemoryStream()
On Error Resume Next
image.Save(imgStream, Imaging.ImageFormat.Png)
Return imgStream.ToArray()
End Function
#End Region
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Dim con As New SqlConnection("Data Source=elsenbisi.mssql.somee.com;User ID=sbisy;Password=0000000000")
Dim sql As String = " INSERT INTO [Table4] ( [img] ) VALUES ( @img ) "
Dim com As New SqlClient.SqlCommand(sql, con)
com.Parameters.AddWithValue("@img", ImageToByte(Me.PictureBox1.Image))
con.Open()
com.ExecuteNonQuery()
con.Close()
MsgBox("تمت الإضافة بنجاح")
End Sub
و ظهر عندى المشكلة دى
[ATTACH=CONFIG]3030[/ATTACH][ATTACH=CONFIG]3031[/ATTACH]
يَامَعْشَرَ الْجِنِّ وَالإِنسِ إِنْ اسْتَطَعْتُمْ أَنْ تَنفُذُوا مِنْ أَقْطَارِ السَّمَاوَاتِ وَالأَرْضِ فَانفُذُوا لا تَنفُذُونَ إِلاّ بِسُلْطَانٍ(33) سورة الرحمن
17-06-13, 04:36 AM (آخر تعديل لهذه المشاركة : 17-06-13, 04:13 PM {2} بواسطة Moo00ooN.)
السلام عليكم ورحمة الله وبركاته
الكود التالي عمل لدي بنجاح.
يبدو أنك تقوم بحفظ صورة بحجم كبير مما يتسبب بانتهاء المهلة الزمنية على النت قبل اتمام العملية.
إستعلمت عن سجل به صورة مصباح أضفتها أنا وتمت بنجاح لأن حجم الصورة صغير.
أفرغ قاعدة البيانات وتعامل مع الصورة الصغيرة فقط
ملاحظة هامة: التعامل مع قاعدة البيانات على الجهازأو الشبكة الداخلية يختلف عن التعامل مع قاعدة بيانات على النت، فالوقت الممنوح لك لاتمام عملية ما يحكمك، ولكن عند التعامل مع قاعدة بيانات على النت ولكن بواسطة كود في الموقع نفسه فلا مشكلة.
PHP كود :
Imports System.Data.SqlClient
Public Class Form1
Private con As New SqlClient.SqlConnection(" Data Source = elsenbisi.mssql.somee.com; User ID = sbisy; Password = 0000000000; ")
#Region " ImageToByte " Public Function ImageToByte(ByVal image As Image) As Object Dim imgByte As Byte() = Nothing Dim imgStream As New IO.MemoryStream() On Error Resume Next image.Save(imgStream, Imaging.ImageFormat.Png) Return imgStream.ToArray() End Function #End Region #Region " ByteToImage " Public Function ByteToImage(ByVal rowItem As Object) As Image On Error Resume Next Return Image.FromStream(New IO.MemoryStream(DirectCast(CObj(rowItem), Byte()))) End Function #End Region
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Dim sql As String = " INSERT INTO [Table4] ( [img] ) VALUES ( @img ) "
Dim com As New SqlClient.SqlCommand(sql, con) com.Parameters.AddWithValue("@img", ImageToByte(Me.PictureBox1.Image))
con.Open() com.ExecuteNonQuery() con.Close()
MsgBox("تمت الإضافة بنجاح") End Sub
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click Me.PictureBox1.Image = Nothing
Dim sql As String = " SELECT * " & _ " FROM [Table4] " & _ " WHERE [ID] = 4 "
Dim com As New SqlClient.SqlCommand(sql, con)
Dim dt As New DataTable Dim da As New SqlClient.SqlDataAdapter(com)
17-06-13, 11:29 AM (آخر تعديل لهذه المشاركة : 17-06-13, 11:35 AM {2} بواسطة ѕαLσσσмx.)
احيانا استغرب صعوبة تنفيذ امر عند عضو مع انه سهل بالنسبة لي مثلا واحيانا اخرى استغرب عدم تمكني من حل مشكلة او تنفيذ كود في حين ان الاغلبية هنا ذكروا الحلول ...فاقول تفسيرا لها ان اختلاف النسخ(الموديل vb 2005-2008-2010-2012) قد يكون سبب في ذلك.
السهل الذي وجدته وعملت له مثال اضافة الصور للقاعدة وعرضها ..لكن كما قلت قد لا يناسب نسخة احدث او اقدم والله تعالى اعلم.
اللهم إني أعوذ بك من غلبة الدين وغلبة العدو، اللهم إني أعوذ بك من جهد البلاء ومن درك الشقاء ومن سوء القضاء ومن شماتة الأعداء، اللهم أصلح لي ديني الذي هو عصمة أمري، وأصلح لي دنياي التي فيها معاشي، وأصلح لي آخرتي التي فيها معادي، واجعل الحياة زيادة لي في كل خير، واجعل الموت راحة لي من كل شر
اللهم اغفر لي خطيئتي وجهلي، وإسرافي في أمري وما أنت أعلم به مني، اللهم اغفر لي جدي وهزلي وخطأي وعمدي وكل ذلك عندي، اللهم اغفر لي ما قدمت وما أخرت، وما أسررت وما أعلنت وما أنت أعلم به مني، أنت المقدم وأنت المؤخر وأنت على كل شيء قدير
شكر ليك اخى أبورائد
بس هل يوجد طريق تعديل الكود علشان اصغر الصور قبل بعد الوضع ادخل قاعد البيانات
بطريق اوضح شوية اخى
دلوقتى انا مش عرف المستخدم هعمل اضافة صور الحجم بتعها كبير ولا صغير بس فى طريق بعد ما يحدد مكان الصور اصغر الحجم ده قبل ما يتم عملت الحفقظ فى قاعدة البيانات مع الحفاظ على نقة الصور
يَامَعْشَرَ الْجِنِّ وَالإِنسِ إِنْ اسْتَطَعْتُمْ أَنْ تَنفُذُوا مِنْ أَقْطَارِ السَّمَاوَاتِ وَالأَرْضِ فَانفُذُوا لا تَنفُذُونَ إِلاّ بِسُلْطَانٍ(33) سورة الرحمن
اظن دقة الصورة تتناسب طرديا مع الحجم اي كلما زادت الدقة زاد الحجم ...ان كان ماقلته خطا فارجو الايضاح.
اللهم إني أعوذ بك من غلبة الدين وغلبة العدو، اللهم إني أعوذ بك من جهد البلاء ومن درك الشقاء ومن سوء القضاء ومن شماتة الأعداء، اللهم أصلح لي ديني الذي هو عصمة أمري، وأصلح لي دنياي التي فيها معاشي، وأصلح لي آخرتي التي فيها معادي، واجعل الحياة زيادة لي في كل خير، واجعل الموت راحة لي من كل شر
اللهم اغفر لي خطيئتي وجهلي، وإسرافي في أمري وما أنت أعلم به مني، اللهم اغفر لي جدي وهزلي وخطأي وعمدي وكل ذلك عندي، اللهم اغفر لي ما قدمت وما أخرت، وما أسررت وما أعلنت وما أنت أعلم به مني، أنت المقدم وأنت المؤخر وأنت على كل شيء قدير