23-02-20, 12:53 AM
(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
أشكرك جداً وفقك الله ورزقك
(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
شكراً لك على جهودك وفقك الله وراعك بلفعل قام الأخ بحل المشكلة
العفو اخي