إضافة الصورة إلى قاعدة البيانات - عبد العزيز البسكري - 27-03-18
السّلام عليكم و رحمة الله و بركاته
أعزّائي الأكارم .. أدعو الله أن تكونوا كلّكم بتمام الصحّة و العافية وكل من تحبّون إن شاء الله
أملي بالله ثم بكم .. المساعدة في حل هذه الإشكاليّة
إتّبعت العديد من الدّروس و من الأكواد لكنّها كلها لم تعطني النتيجة المرجوّة ..
كيف يمكن إضافة الصّورة مع بقية البيانات عند الضغط على زر الأمر " الحفظ " .. و في حالة لم يتم إختيار الصّورة فسيتم إعتماد تلقائيا الصورة المخزّنة بالريسورس
بارك الله فيكم و لكم مقدّمًا و جزاكم خير الجزاء
تحياتي و احتراماتي
RE: إضافة الصورة إلى قاعدة البيانات - ابو ليلى - 28-03-18
الاخ الكريم عبد العزيز البسكري,
من خلال الكود لديك , ضع هذه الدوال في النموذج لديك
PHP كود :
Public Function FileImageBytes() As Byte() Dim ImageByte As Byte() = New Byte() {} If PictureBox1.Image Is Nothing Then 'فعل السطر التالي في حال احببت ان تخزن صور فارغة 'ImageByte = New Byte() {} PictureBox1.Image = My.Resources.Nopicture Else Dim Ms As IO.MemoryStream = New IO.MemoryStream PictureBox1.Image.Save(Ms, PictureBox1.Image.RawFormat) ImageByte = Ms.ToArray End If
Return ImageByte End Function
Public Function AddDataWithImage() As Boolean Using cmd As New SqlCommand With {.Connection = CON} cmd.CommandText = <SQL> INSERT INTO STUDENT ( ID, FirstName, LastName, BirthDate, Mobile, Adresse, Carte ) Values ( @ID, @FirstName, @LastName, @BirthDate, @Mobile, @Adresse, @Carte ) </SQL>.Value
cmd.Parameters.AddRange( New SqlParameter() _ { New SqlParameter With {.ParameterName = "@ID", .DbType = DbType.Int32, .Value = TextBox1.Text.Trim}, New SqlParameter With {.ParameterName = "@FirstName", .DbType = DbType.String, .Value = TextBox2.Text.Trim}, New SqlParameter With {.ParameterName = "@LastName", .DbType = DbType.String, .Value = TextBox3.Text.Trim}, New SqlParameter With {.ParameterName = "@BirthDate", .DbType = DbType.Date, .Value = DateTimePicker1.Value.Date}, New SqlParameter With {.ParameterName = "@Mobile", .DbType = DbType.String, .Value = TextBox5.Text.Trim}, New SqlParameter With {.ParameterName = "@Adresse", .DbType = DbType.String, .Value = TextBox6.Text.Trim}, New SqlParameter With {.ParameterName = "@Carte", .SqlDbType = SqlDbType.Image, .Value = FileImageBytes()} } )
Try Dim Affected As Int32 = cmd.ExecuteNonQuery If Affected = 1 Then 'هذا يعني نجاح العملية Return True Else Return False End If Catch ex As Exception Return False End Try End Using End Function
بعد ذلك استدعي الدالة AddDataWithImage في زر الحفظ لديك
المخرجات القادمة من الدلة منطقية في حال كان True يعني تم الحفظ.
استخدمها كما يناسبك.
انا لم اطلع على القاعدة لديك و لم اجرب فقط عدلت لك في الكود.
جربه لديك و اخبرنا بالنتيجة.
ملاحظة :استخدم البارمترات بدل عناصر الادخال لتتحاشى مشكل Sql Injection , و هي الطريقة المتبعة و الموصى بها.
مرفق مثال لطريقة الادخال الى قاعدة اكسس (مثال طلبه الاخ ابو وسم في احد المشاركات و لم يسعفني الوقت للتعديل عليه)
المثال يحتوي على نفس الفكرة مع طريقة العرض و التنقل بين السجلات وعرض الصورة الموافقة للسجل.
تحياتي.
RE: إضافة الصورة إلى قاعدة البيانات - عبد العزيز البسكري - 28-03-18
السّلام عليكم و رحمة الله و بركاته
بارك الله فيك و لك و جزاك خير الجزاء أخي الكريم " أبو ليلى " على الشّرح الرّائع و الكود و المثال
قرّبت لي الفكرة الله يرضى عليك لأنّي أعتقد أنّ المشكلة بكود الحفظ لديَّ .. فحين تغييره بأكواد أخرى للحفظ يتم ذلك بطريقة عادية
أخي الكريم " أبو ليلى " .. لاحظت بجزئية من الكود بعض العلامات من طريقة أكواد C#.NET
هل يمكن إستغلالها في مشاريع ال VB NET ؟
أجدّد شكري و تقديري و إحترامي لك .. سأعمل على المثال المرفق مجدّدا و أخبرك بالنتيجة إن شاء الله
إحتراماتي و تقييماتي
RE: إضافة الصورة إلى قاعدة البيانات - ابو ليلى - 28-03-18
السلام عليكم و رحمة الله و بركاته
اي علامات تقصد ؟ , اشر اليها فضلاً ...
RE: إضافة الصورة إلى قاعدة البيانات - عبد العزيز البسكري - 28-03-18
(28-03-18, 03:57 PM)ابو ليلى كتب : السلام عليكم و رحمة الله و بركاته
اي علامات تقصد ؟ , اشر اليها فضلاً ...
السّلام عليكم و رحمة الله و بركاته
تمام أخي و أستاذي الفاضل " أبو ليلى "
بارك الله فيك و لك و في " ليلى " و كل الأسرة الكريمة
العلامات أقصد الأقواس و الحاضنات مثلها مثل أكواد ال C+
بقيت لي إشكالية أخيرة أخي الغالي .. لو سمحت فضلا لا أمرا بالنظر فيها
عند إختيار الاسم من الكومبوبكس .. تظهر بيناته بما في ذلك الصورة بالتاكسات
و كذلك عند إضافة سجل جديد .. لا يمكن إستعراضه بأزرار التالي و السابق إلا بعد إغلاق الفورم و الدخول ثانية
كل الشكر و التّقدير و الإحترام
RE: إضافة الصورة إلى قاعدة البيانات - عبدالله الدوسري - 28-03-18
ما شاء الله أخي [b]عبد العزيز البسكري[/b]
إنتقالك إلى قواعد بيانات SQL
ومشروعك بداء يظهر بصورة جيدة
بالتوفيق وإلى الأمام .
RE: إضافة الصورة إلى قاعدة البيانات - عبد العزيز البسكري - 28-03-18
(28-03-18, 09:36 PM)عبدالله الدوسري كتب : ما شاء الله أخي [b]عبد العزيز البسكري[/b]
إنتقالك إلى قواعد بيانات SQL
ومشروعك بداء يظهر بصورة جيدة
بالتوفيق وإلى الأمام .
السّلام عليكم و رحمة الله و بركاته
بارك الله فيك و لك أخي و استاذي الكريم " عبد الله الدّوسري " على الكلمات الرائعة و التّشجيع الطيّب
جزاك الله خير الجزاء و زادها بموازين حسناتك إن شاء الله
الخير كلّه من أفضالكم أساتذتنا الأكارم علينا خاصّة و على المنتدى كلّه عامّة
أطال الله بأعماركم بمحبة الله و مرضاته
تساؤل سيّدي الكريم لو سمحت ..
قمت بتحميل فيجوال ستيديو 2015 .. لكن إكتشفت فيما بعد أنّ ببعض النّسخ الحجم متغيّر .. كبيرة الحجم و صغيرة الحجم
ما هو الفرق في زيادة الحجم بين نسخة و أخرى
إحتراماتي
RE: إضافة الصورة إلى قاعدة البيانات - محمود صالح - 29-03-18
ضع الكود ده في اي زر تريده سيجلب لك الصورة حسب رقم الطالب
PHP كود :
Dim DT As DataTable Dim ADP As New SqlDataAdapter("Select Carte from STUDENT where id like '" & TextBox1.Text & "'", CON) ADP.Fill(DT) Dim PIC_() As Byte = CType(DT.Rows(DT.Rows.Count - 1).Item("Carte"), Byte()) Dim MS As New MemoryStream(PIC_) PictureBox1.Image = Image.FromStream(MS)
RE: إضافة الصورة إلى قاعدة البيانات - ابو ليلى - 29-03-18
السلام عليكم و رحمة الله و بركاته
الاخ عبد العزيز البسكري,
لا ادري ان كنت قد فهمتك بالشكل المطلوب ؟؟
انت تريد اعادة تعبئة بيانات الطلاب في عنصر ComboBox بعد الحفظ ؟؟
الكود لديك مقلوب راساً على عقب ؟؟
عدلت فيه بعض التعديلات السريعة جربه لديك
استبدل كود النموذج بالكود التالي
PHP كود :
Imports System.Data.SqlClient Imports System.IO Imports System.Data Imports Sunisoft.IrisSkin Public Class Form1 Dim CON As New SqlConnection("Server=ABDELAZIZ;Database=SCHOOL;Integrated Security=false;user id=sa;password=GH987654GH;")
Dim InfoCommand As SqlCommand Dim InfoTable As DataTable
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load ' Try ' CON.Open() InfoTable = New DataTable Using InfoAdapter As New SqlDataAdapter("select * from STUDENT", CON) InfoAdapter.Fill(InfoTable) End Using ' DataGridView1.DataSource = InfoTable
TextBox1.DataBindings.Add("Text", InfoTable, "ID") TextBox2.DataBindings.Add("Text", InfoTable, "FirstName") TextBox3.DataBindings.Add("Text", InfoTable, "LastName") DateTimePicker1.DataBindings.Add("Text", InfoTable, "BirthDate") TextBox5.DataBindings.Add("Text", InfoTable, "Mobile") TextBox6.DataBindings.Add("Text", InfoTable, "Adresse")
PictureBox1.DataBindings.Add("Image", InfoTable, "Carte", True, Windows.Forms.DataSourceUpdateMode.OnPropertyChanged)
DataGridView1.Columns(0).HeaderText = "الترقيم" DataGridView1.Columns(1).HeaderText = "الاسم" DataGridView1.Columns(2).HeaderText = "اللقب" DataGridView1.Columns(3).HeaderText = "تاريخ الميلاد" DataGridView1.Columns(3).DefaultCellStyle.Format = "yyyy-MM-dd" DataGridView1.Columns(4).HeaderText = "هاتف الولي" DataGridView1.Columns(5).HeaderText = "العنوان" DataGridView1.Columns(6).HeaderText = "الصورة"
DataGridView1.RowHeadersWidth = 30 DataGridView1.Columns(0).Width = 70 DataGridView1.Columns(1).Width = 200 DataGridView1.Columns(2).Width = 200 DataGridView1.Columns(3).Width = 150 DataGridView1.Columns(4).Width = 150 DataGridView1.Columns(5).Width = 150
DataGridView1.Columns(0).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter DataGridView1.Columns(1).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter DataGridView1.Columns(2).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter DataGridView1.Columns(3).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter DataGridView1.Columns(4).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter DataGridView1.Columns(5).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
With Me.DataGridView1 DataGridView1.RowsDefaultCellStyle.BackColor = Color.Aquamarine .AlternatingRowsDefaultCellStyle.BackColor = Color.White .RowsDefaultCellStyle.SelectionBackColor = Color.WhiteSmoke .RowsDefaultCellStyle.SelectionForeColor = Color.Red .AlternatingRowsDefaultCellStyle.SelectionBackColor = Color.WhiteSmoke .ColumnHeadersDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter DataGridView1.Font = New Font("Arial", 10, FontStyle.Bold) End With
record() ShowRelated()
Button2.Enabled = False Button5.Enabled = False Button13.Enabled = False 'إضافة السكاين Dim skn As New Sunisoft.IrisSkin.SkinEngine skn.SerialNumber = "kUb2DF5pvGF3X9dKPFvIdkXQ0sE8LkAVp9fMme9wCnjZ+ArdRVlxKw==" skn.SkinFile = Application.StartupPath & "\SILVER.ssk" skn.AddForm(Me) 'تعبئة الكومبوبوكس PopulateComboBox(InfoTable) End Sub
'تعبئة الكومبوبوكس Private Sub PopulateComboBox(Dt As DataTable) ComboBox1.DataSource = Dt ComboBox1.DisplayMember = "FirstName" ComboBox1.ValueMember = "ID" End Sub
Private Sub record() TextBox7.Text = DataGridView1.Rows.Count() - 1 End Sub Public Sub ShowRelated() Try If Me.BindingContext(InfoTable).Position = -1 Then TextBox8.Text = "التّلميذ رقم 0 من 0" Else TextBox8.Text = "التّلميذ المسجّل رقم :" & Me.BindingContext(InfoTable).Position + 1 & " من " & Me.BindingContext(InfoTable).Count End If Catch ex As Exception End Try End Sub Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click If MsgBox("هل تريد إضافة سجل جديد ؟ ", MsgBoxStyle.Exclamation + MsgBoxStyle.MsgBoxRight + MsgBoxStyle.OkCancel, "إضافة سجل جديد") = MsgBoxResult.Cancel Then Exit Sub
Using Command As New SqlCommand("SELECT max(ID) From STUDENT", CON) If CON.State = ConnectionState.Closed Then CON.Open() If Command.ExecuteScalar Is DBNull.Value Then TextBox1.Text = 1 clear_Text() TextBox2.Focus() Button1.Enabled = False Button2.Enabled = True Button3.Enabled = False Button4.Enabled = False Button5.Enabled = True Button6.Enabled = False PictureBox1.Image = My.Resources.Nopicture Else TextBox1.Text = Command.ExecuteScalar().ToString() + 1 clear_Text() TextBox2.Focus() Button1.Enabled = False Button2.Enabled = True Button3.Enabled = False Button4.Enabled = False Button5.Enabled = True Button6.Enabled = False PictureBox1.Image = My.Resources.Nopicture End If CON.Close() End Using End Sub Private Sub clear_Text() TextBox2.Text = "" TextBox3.Text = "" TextBox5.Text = "" TextBox6.Text = "" End Sub Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click If TextBox1.Text.Trim = "" Then ErrorProvider1.SetError(TextBox1, "الرجاء عدم ترك حقل رقم المتمدرس فارغا") MessageBox.Show("الرجاء عدم ترك حقل رقم المتمدرس فارغا", "إدخال خاطىء", MessageBoxButtons.OK, MessageBoxIcon.Information) TextBox1.Focus() Exit Sub End If If TextBox2.Text.Trim = "" Then ErrorProvider1.SetError(TextBox2, "الرجاء عدم ترك حقل اسم المتمدرس فارغا") MessageBox.Show("الرجاء عدم ترك حقل اسم المتمدرس فارغا", "إدخال خاطىء", MessageBoxButtons.OK, MessageBoxIcon.Information) TextBox2.Focus() Exit Sub End If If TextBox3.Text.Trim = "" Then ErrorProvider1.SetError(TextBox3, "الرجاء عدم ترك حقل لقب المتمدرس فارغا") MessageBox.Show("الرجاء عدم ترك حقل لقب المتمدرس فارغا", "إدخال خاطىء", MessageBoxButtons.OK, MessageBoxIcon.Information) TextBox3.Focus() Exit Sub End If If TextBox5.Text.Trim = "" Then ErrorProvider1.SetError(TextBox5, "الرجاء عدم ترك حقل هاتف و لي أمر المتمدرس فارغا") MessageBox.Show("الرجاء عدم ترك حقل هاتف و لي أمر المتمدرس فارغا", "إدخال خاطىء", MessageBoxButtons.OK, MessageBoxIcon.Information) TextBox5.Focus() Exit Sub End If If TextBox6.Text.Trim = "" Then ErrorProvider1.SetError(TextBox6, "الرجاء عدم ترك حقل عنوان المتمدرس فارغا") MessageBox.Show("الرجاء عدم ترك حقل عنوان المتمدرس فارغا", "إدخال خاطىء", MessageBoxButtons.OK, MessageBoxIcon.Information) TextBox6.Focus() ElseIf MsgBox("هل تريد حفظ السجل الحالي", MsgBoxStyle.Information + MsgBoxStyle.YesNo, "تأكيد الحفظ") = MsgBoxResult.No Then Exit Sub ElseIf TextBox1.Text = "" Then MsgBox("الرجاء كتابة الرقم التسلسلي", MsgBoxStyle.MsgBoxRtlReading, "تنبيه") End If 'التأكّد قبل الحفظ Dim Checknum As String = "" Using Check As New SqlCommand With {.Connection = CON, .CommandText = "select ID from STUDENT where ID = @ID "} Check.Parameters.Add("@ID", SqlDbType.Int).Value = Convert.ToInt32(TextBox1.Text.Trim) If CON.State = ConnectionState.Closed Then CON.Open() Checknum = Check.ExecuteScalar CON.Close() End Using If Checknum <> "" Then MsgBox("عفوًا .. هذا التّلميذ سبق تسجيله في النّظام و لا يمكن تكرار تسجيله بنفس رقم القيد ", MsgBoxStyle.Critical + MsgBoxStyle.MsgBoxRight, " خطأ في التسجيل ") Exit Sub Else Using Command As New SqlCommand With {.Connection = CON} With Command .CommandText = "INSERT INTO STUDENT(ID,FirstName,LastName,BirthDate,Mobile,Adresse,Carte)values(@ID,@FirstName,@LastName,@BirthDate,@Mobile,@Adresse,@Carte)" .Parameters.Add("@ID", SqlDbType.Int).Value = TextBox1.Text .Parameters.Add("@FIRSTNAME", SqlDbType.NVarChar).Value = TextBox2.Text .Parameters.Add("@LASTNAME", SqlDbType.NVarChar).Value = TextBox3.Text .Parameters.Add("@BIRTHDATE", SqlDbType.NVarChar).Value = DateTimePicker1.Value.ToString("yyyy/MM/dd") .Parameters.Add("@MOBILE", SqlDbType.NVarChar).Value = TextBox5.Text .Parameters.Add("@ADRESSE", SqlDbType.NVarChar).Value = TextBox6.Text Dim ms As New MemoryStream PictureBox1.Image.Save(ms, PictureBox1.Image.RawFormat) .Parameters.Add("@Carte", SqlDbType.Image).Value = ms.ToArray() End With If CON.State = ConnectionState.Closed Then CON.Open() If Command.ExecuteNonQuery() = 1 Then MsgBox("تمت عملية الإضافة بنجاح", MsgBoxStyle.MsgBoxRtlReading, "تنفيذ إجراء الإضافة") RE_DATE() record() ShowRelated() Else MsgBox("تأكد من إدخال جميع البيانات وبالصورة الصحيحة", MsgBoxStyle.MsgBoxRtlReading, "إدخال خاطئ أو غير مكتمل") End If CON.Close() End Using End If Button1.Enabled = True Button2.Enabled = False Button3.Enabled = True Button4.Enabled = False Button5.Enabled = True Button6.Enabled = True End Sub Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click If MsgBox(" هل أنت متأكّد من أنك تريد تعديل بيانات هذا النّلميذ : " & TextBox2.Text & " " & TextBox3.Text & " ؟ ", MsgBoxStyle.YesNo + MsgBoxStyle.Critical, "تحذير") = MsgBoxResult.No Then Exit Sub Else Button1.Enabled = False Button2.Enabled = False Button3.Enabled = False Button4.Enabled = False Button13.Enabled = True Button5.Enabled = True Button6.Enabled = True End If End Sub Private Sub Button13_Click(sender As Object, e As EventArgs) Handles Button13.Click If TextBox1.Text = "" Then MsgBox("الرجاء كتابة الرقم التسلسلي", MsgBoxStyle.MsgBoxRtlReading, "تنبيه") Else Using Command As New SqlCommand With Command .CommandText = "UPDATE STUDENT SET FIRSTNAME= @FIRSTNAME ,LASTNAME= @LASTNAME,BIRTHDATE= @BIRTHDATE,MOBILE= @MOBILE,ADRESSE= @ADRESSE,Carte=@Carte where ID = @ID" .Connection = CON .Parameters.Add("@ID", SqlDbType.Int).Value = TextBox1.Text .Parameters.Add("@FIRSTNAME", SqlDbType.NVarChar).Value = TextBox2.Text .Parameters.Add("@LASTNAME", SqlDbType.NVarChar).Value = TextBox3.Text .Parameters.Add("@BIRTHDATE", SqlDbType.NVarChar).Value = DateTimePicker1.Value.ToString("yyyy/MM/dd") .Parameters.Add("@MOBILE", SqlDbType.NVarChar).Value = TextBox5.Text .Parameters.Add("@ADRESSE", SqlDbType.NVarChar).Value = TextBox6.Text Dim ms As New MemoryStream PictureBox1.Image.Save(ms, PictureBox1.Image.RawFormat) .Parameters.Add("@Carte", SqlDbType.Image).Value = ms.ToArray()
If CON.State = ConnectionState.Closed Then CON.Open() If Command.ExecuteNonQuery() = 1 Then MsgBox("تمت عملية التعديل بنجاح", MsgBoxStyle.MsgBoxRtlReading, "تنفيذ اجراء التعديل") RE_DATE() Else MsgBox("لم تتم عملية التعديل بنجاح", MsgBoxStyle.MsgBoxRtlReading, "تنفيذ اجراء التعديل") End If CON.Close() End With End Using Button1.Enabled = True Button2.Enabled = True Button3.Enabled = True Button4.Enabled = True Button13.Enabled = False Button5.Enabled = False Button6.Enabled = True End If End Sub Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click Using Commandcheck As New SqlCommand("SELECT max(ID) From STUDENT", CON) If CON.State = ConnectionState.Closed Then CON.Open() If Commandcheck.ExecuteScalar Is DBNull.Value Then MsgBox("قاعدة البيانات فارغة .. لا توجد بيانات لتنفيذ الأمر ") CON.Close() Exit Sub End If End Using
If MsgBox(" هل أنت متأكّد من أنك تريد حذف بيانات هذا النّلميذ : " & TextBox2.Text & " " & TextBox3.Text & " ؟ ", MsgBoxStyle.YesNo + MsgBoxStyle.Critical, "تحذير") = MsgBoxResult.No Then Exit Sub ElseIf TextBox1.Text = "" Then MsgBox("الرجاء كتابة الرقم التسلسلي", MsgBoxStyle.MsgBoxRtlReading, "تنبيه") Else
Using Command As New SqlCommand("DELETE FROM STUDENT where ID = @ID", CON) Command.Parameters.Add("@ID", SqlDbType.Int).Value = TextBox1.Text If CON.State = ConnectionState.Closed Then CON.Open() If Command.ExecuteNonQuery() = 1 Then MsgBox("تمت عملية الحذف بنجاح", MsgBoxStyle.MsgBoxRtlReading, "تنفيذ اجراء الحذف") RE_DATE() record() Else MsgBox("لم تتم عملية الحذف بنجاح", MsgBoxStyle.MsgBoxRtlReading, "تنفيذ اجراء الحذف") End If CON.Close() End Using End If End Sub Private Sub Button8_Click(sender As Object, e As EventArgs) Handles Button8.Click Me.BindingContext(InfoTable).Position -= 1 ShowRelated() End Sub Private Sub Button7_Click(sender As Object, e As EventArgs) Handles Button7.Click If Me.BindingContext(InfoTable).Position = 0 Then MsgBox("!!! لقد وصلت إلى السجل الأول") Else Me.BindingContext(InfoTable).Position = 0 ShowRelated() End If End Sub Private Sub Button9_Click(sender As Object, e As EventArgs) Handles Button9.Click Me.BindingContext(InfoTable).Position += 1 ShowRelated() End Sub Private Sub Button10_Click(sender As Object, e As EventArgs) Handles Button10.Click If (Me.BindingContext(InfoTable).Position = Me.BindingContext(InfoTable).Count - 1) Then MsgBox(" !!! لقد وصلت إلى السجل الأخير") Else Me.BindingContext(InfoTable).Position = Me.BindingContext(InfoTable).Count - 1 ShowRelated() End If End Sub Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click Button1.Enabled = True Button2.Enabled = False Button3.Enabled = True Button4.Enabled = True Button5.Enabled = False Button13.Enabled = False Button6.Enabled = True Button7_Click(sender, e) End Sub Private Sub Button11_Click(sender As Object, e As EventArgs) Handles Button11.Click Try If Button1.Enabled = False Then ElseIf TextBox2.Text = "" Then MsgBox("فضلاً قم بعرض البيانات أولاً") Exit Sub End If Dim opn As New OpenFileDialog opn.Title = "إختر الصّورة لو سمحت " opn.Filter = "الصور|*.jpg;*.jpeg;*.png;*.gif" opn.Multiselect = False If opn.ShowDialog() = DialogResult.OK Then PictureBox1.Image = Image.FromFile(opn.FileName) End If Catch ex As Exception MessageBox.Show(ex.Message, "خطأ فى تحميل الصورة", MessageBoxButtons.OK, MessageBoxIcon.Error) End Try End Sub Private Sub form1_Closing(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles MyBase.Closing e.Cancel = True End Sub
'اجراء اعادة التعبئة Private Sub RE_DATE() Using ADP As New SqlDataAdapter("select * from STUDENT", CON) Dim Dt As New DataTable ADP.Fill(Dt) DataGridView1.DataSource = Dt PopulateComboBox(Dt) End Using End Sub Public Function SELECT_DT(ByVal TXT_ As String) As DataTable 'تحديث البيانات Dim DT As New DataTable DT.Clear() Dim ADP As New SqlDataAdapter(TXT_, CON) ADP.Fill(DT) Return DT End Function Private Sub DataGridView1_SelectionChanged(sender As Object, e As EventArgs) Handles DataGridView1.SelectionChanged End Sub
Private Sub showphoto() If DataGridView1.CurrentRow.DataBoundItem IsNot Nothing Then Dim Row As DataRow = CType(DataGridView1.CurrentRow.DataBoundItem, DataRowView).Row Dim Imagee As Byte() = DirectCast(Row.Item(6), Byte()) If Imagee.Length > 0 Then Using Ms As IO.MemoryStream = New IO.MemoryStream(Imagee) PictureBox1.Image = Image.FromStream(Ms) Imagee = Nothing End Using End If Else PictureBox1.Image = My.Resources.Nopicture End If End Sub Private Sub Button6_Click(sender As Object, e As EventArgs) Handles Button6.Click If MsgBox("هل تريد الخروج من البرنامج", MsgBoxStyle.YesNo + MsgBoxStyle.Critical, "تنبيه") = MsgBoxResult.No Then Exit Sub Else Me.Dispose() End If End Sub
Private Sub DataGridView1_CurrentCellChanged(sender As Object, e As EventArgs) Handles DataGridView1.CurrentCellChanged If DataGridView1.RowCount > 0 Then If DataGridView1.CurrentRow IsNot Nothing Then Dim r As DataGridViewRow = Me.DataGridView1.CurrentRow TextBox1.Text = r.Cells(0).Value.ToString TextBox2.Text = r.Cells(1).Value.ToString TextBox3.Text = r.Cells(2).Value.ToString TextBox5.Text = r.Cells(4).Value.ToString TextBox6.Text = r.Cells(5).Value.ToString showphoto() ShowRelated()
End If End If
End Sub End Class
بالنسبة لسؤالك عن الاقواس المستخدمة مع With فهي لدمج مجموع خصائص في مجموعة واحدة بدل الدخول في عبارة
With..........End With
تعطي وصول سريع لخصائص الكائن و ضبط قيمه اثناء التصريح عنه.
ليست كل الخصائص متاحة مع هذا الشكل لكن الاشيع استخداماً تكون متوفرة مع هذه العبارة.
RE: إضافة الصورة إلى قاعدة البيانات - عبد العزيز البسكري - 29-03-18
السّلام عليكم و رحمة الله و بركاته
أخي الغالي " محمود صالح "
أشكرك جزيل الشكر على الدّعم الذي طالما تقدّمه لنا .. ربّنا يبارك فيك و في صالح أعمالك إن شاء الله
لمسة قيّمة و إضافة مميّزة .. جزاك الله خير الجزاء و زادك من علمه و فضله
تحياتي و تقييماتي
أخي الفاضل " أبو ليلى "
مهما عبّرت لك عن شكري وامتناني لجميل أعمالك لن أفيك حقّك بكل صدق
الأكواد مقلوبة رأسا على عقب فعلاً .. لا تلمني
نصفها من القدس .. و جزء من نابلس .. و البعض من طرابلس
مع لمساتك السحريّة
الحمد لله .. أصبحت منظّمة بشكل رائع و مختصر خاصّة فيما يتعلّق بجمل الإتّصال
بارك الله فيك .. لأنّ أكثر ما يرهق أعصابي هي جمل الإتّصال
أفتحها من هنا .. تخبرني رسائل الأخطاء أنّها مغلقة من هناك
أغلقها من هنا .. تخبرني رسائل الأخطاء أنّها مفتوحة من هناك
جرّبت الكود الشّامل الذي تكرّمت به و هو يعمل بشكل ممتاز
أجدّد شكري و تقديري و احترامي وامتناني لشخصك الكريم
تحياتي و تقيياتي
|