تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
كود حفظ صورة في قاعدة البيانات sql
#11
(23-02-20, 12:45 AM)aldery كتب :
(23-02-20, 12:41 AM)عبد العزيز البسكري كتب :
سيكون الشكل بهذه الطريقة .. راجع أسماء كود الإتصال لو سمحت ..
كود :
Imports System.Data.SqlClient
Imports System.IO
Public Class Form1
   Public Constr As String = "Server=YourServerName;Database=YourDatabaseName;Integrated Security=False;User Id=YourNameLogin;Password=YourPasswordSqlServer"
   Public Conne_2020 As New SqlClient.SqlConnection(Constr)
   Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
       Dim Cmd As New SqlCommand
       With Cmd
           Cmd.Connection = Conne_2020
           Cmd.CommandType = CommandType.Text
           Cmd.CommandText = "UPDATE TBL_STUDENT SET STUDENT_Picture=@STUDENT_Picture Where STUDENT_Id=@STUDENT_Id"
           Cmd.Parameters.Clear()

           'Update PictureBox
           Dim Ms_Photo As New MemoryStream()
           Dim bmpImage As New Bitmap(PictureBox1.Image)
           bmpImage.Save(Ms_Photo, System.Drawing.Imaging.ImageFormat.Jpeg)
           Dim Data_Photo As Byte() = Ms_Photo.GetBuffer()
           Dim PhotoPersonnelle As New SqlParameter("@STUDENT_Picture", SqlDbType.Image)
           PhotoPersonnelle.Value = Data_Photo
           Cmd.Parameters.Add(PhotoPersonnelle)

           Cmd.Parameters.AddWithValue("@STUDENT_Id", SqlDbType.Int).Value = TextBox1.Text

       End With
       Try
           If Conne_2020.State = 1 Then Conne_2020.Close()
           Conne_2020.Open()
           Cmd.ExecuteNonQuery()
           Conne_2020.Close()
           Cmd = Nothing
           MessageBox.Show("تمت بنجاح عملية حفظ الصورة و تعديل البيانات", "تعديل البيانات", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
       Catch ex As Exception
           Conne_2020.Close()
           MsgBox(Err.Description, MsgBoxStyle.Information)
       Finally
           If Conne_2020.State = ConnectionState.Open Then Conne_2020.Close()
       End Try
   End Sub
   Private Sub Choose_Picture_From_Computer(Pbox As PictureBox)
       Try
           Dim Ofn As New OpenFileDialog
           With Ofn
               Ofn.AddExtension = True
               Ofn.CheckPathExists = True
               Ofn.CheckFileExists = True
               Ofn.Title = "إختيار الصورة الرمزية"
               Ofn.Filter = "Choose Image (*.PNG; *.JPG; *.GIF; *.JPEG)| *.PNG; *.JPG; *.GIF; *.JPEG | All Files (*.*)|*.*"
               Ofn.FilterIndex = 4
               Ofn.Multiselect = False
               If .ShowDialog = DialogResult.OK Then
                   Pbox.Image = Image.FromFile(.FileName)
               End If
           End With
       Catch ex As Exception
           MessageBox.Show(ex.Message, "خطأ غير متوقّع أثناء تحميل الصّورة", MessageBoxButtons.OK, MessageBoxIcon.Error)
       End Try
   End Sub
   Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
       Choose_Picture_From_Computer(PictureBox1)
   End Sub
End Class


أشكرك جداً وفقك الله ورزقك  Heart

(23-02-20, 12:42 AM)alsalamoni كتب :
(23-02-20, 12:28 AM)aldery كتب :
(23-02-20, 12:12 AM)alsalamoni كتب :
(22-02-20, 11:38 PM)aldery كتب : السلام عليكم ورحمة الله , كيفكم أخواني إن شاء الله تكونو بخير .

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

مثال : المعرف | احمد | العمر | رقم الهاتف | الصورة 

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

هذه صورة لقاعدة البيانات + صورة للواجهة 






من الصورة يبدو ان نوع حقل الصورة ليس image

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

كود :
Imports System.Data.SqlClient
Imports System.IO
Public Class Form1
    Dim fName As String

    Dim cnn As SqlConnection
    Dim connectionString As String

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        connectionString = "server=DESKTOP-CRKR4GN\Afkee; database=list1; integrated security=true"
        cnn = New SqlConnection(connectionString)
        fName = "D:\picfile.jpg"
        If File.Exists(fName) Then
            Dim id As Integer = 1
            Dim content As Byte() = ImageToStream(fName)
            cnn.Open()

            Dim cmd As New SqlCommand("insert into imgtable (id,img) values ( @id,@img)", cnn)
            cmd.Parameters.AddWithValue("@id", id)
            cmd.Parameters.AddWithValue("@img", content)
            cmd.ExecuteNonQuery()

            cnn.Close()
            MsgBox("Image inserted")
        Else
            MsgBox(fName & " not found ")
        End If
    End Sub

    Private Function ImageToStream(ByVal fileName As String) As Byte()
        Dim stream As New MemoryStream()
tryagain:
        Try
            Dim image As New Bitmap(fileName)
            image.Save(stream, System.Drawing.Imaging.ImageFormat.Jpeg)
        Catch ex As Exception
            GoTo tryagain
        End Try

        Return Stream.ToArray()
    End Function
End Class


أخي هذا الكود 

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

اريد حفظ الصورة وليس المسار  وهذا صورة لمكان الصورة


افترضت ان id ترقيم تلقائي لهذا حذفته من امر الاضافه
كود :
Imports System.Data.SqlClient
Imports System.IO

Public Class Form1

   Dim fName As String

   Dim cnn As New SqlConnection("Data Source=servername; Initial Catalog=databasename; User ID=sa; Password=password")
   Dim connectionString As String

   Private Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button1.Click

       fName = "D:\picfile.jpg"
       If Not File.Exists(fName) Then
           MsgBox("not found")
           Exit Sub
       End If

       Dim cmd As New SqlCommand("insert into imgtable (img) values(@img)", cnn)
       cmd.Parameters.AddWithValue("@img", File.ReadAllBytes(fName))

       cnn.Open()
       If cmd.ExecuteNonQuery() = 1 Then
           MsgBox("Image inserted")
       End If
       cnn.Close()

   End Sub

End Class

شكراً لك على جهودك وفقك الله وراعك بلفعل قام الأخ بحل المشكلة  Heart

العفو اخي
الرد
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  اسناد كل عامود في قاعدة البيانات الى عامود بالداتا جريد فيو Ghassanff 7 110 , 10:43 PM
آخر رد: asemshahen5
  [VB.NET] ظهور خطا بالاتصال بقاعدة البيانات Mohammed Nafa 0 29 , 04:41 PM
آخر رد: Mohammed Nafa
  [VB.NET] تعديل فى ربط قاعدة بيانات أكسس مع Combobox Doctor GME 11 372 , 12:10 AM
آخر رد: WaeLx
  [SQL] الحاق مجموعة من البيانات من جدول الى اخر في قاعدة بيانات ثانية khairallah 2 65 29-03-20, 02:49 PM
آخر رد: khairallah
  [ تمّ الحل ] : تساؤل حول الطباعة من خلال جدولين بقاعدة البيانات عبد العزيز البسكري 7 237 24-03-20, 07:28 PM
آخر رد: عبد العزيز البسكري
  تكرار خانة في قاعدة البيانات SABER_ZINOUBI 0 61 16-03-20, 02:26 PM
آخر رد: SABER_ZINOUBI
  تحويل قاعدة اكسس الي سكول atefkhalf2004 1 88 16-03-20, 01:42 PM
آخر رد: عبد العزيز البسكري
  [سؤال] تصغير حجم الصورة قبل حفظها بقاعدة البيانات سيكوال هاني المومني 4 126 15-03-20, 03:10 PM
آخر رد: asemshahen5
  عدم حفظ البيانات في قاعدة SQL muhannd 2 512 11-03-20, 06:48 PM
آخر رد: زكريا العريقي
  اظهار صورة ملتقطة من webcam في DATAGRIDVIEW nasro.betz 3 170 05-03-20, 09:05 PM
آخر رد: nasro.betz

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم