التنبيهات التالية ظهرت :
Warning [2] count(): Parameter must be an array or an object that implements Countable - Line: 864 - File: showthread.php PHP 7.4.33 (Linux)
File Line Function
/showthread.php 864 errorHandler->error



تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
طلب مساعدة في حفظ الصورة في قاعدة بيانات اكسس
#1
السلام عليكم ورحمة الله وبركته
ان عملت برنامج بلغة الفيجوال وقاعدة بيانات اكسس والبرنامج شغال تمام خالص معايا وبيفظ كل البيانات وبيعدل عليها كمان 
بس المشكلة الوحيدة الي مش لقيلها حل ودورت كتير خالص ومفيش طريقة اشتغلت معايا هي اني عاوز اضيف مع البيانات دي صورة تتحفظ وتتخزن في قاعدة البيانات نفسها مش يحفظ المسار لا يحفظ الصورة نفسها جوه القاعدة مع البيانات ولما اعملها عرض من الداتا جريد فيو علشان اعدل عليها تظهر معايا واقدر اعدلها 
فلو سمحت الي يقدر يعدل في كود المشروع  ويضيف الكود بتاع حفظ الصورة اكون شاكر فضلة علشان والله دورت كتير ومفيش طريقة ظبطط معايا وشكرا 


دي صورة قائمة ادخال وحفظ 


ودي اكواد الحفظ 
كود :
Imports System.Data.OleDb
Imports System.Data
Imports System.Globalization
Imports System.IO
Imports System.Drawing.Image
Public Class UserControl1
   Dim con As New OleDbConnection("provider=microsoft.jet.oledb.4.0;data source=" & Application.StartupPath & "\MSME.mdb;user id=admin;jet oledb:database password=343282")

   Private Sub UserControl1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
       Guna.UI.Lib.GraphicsHelper.DrawLineShadow(Me, Color.Black, 50, 20, Guna.UI.WinForms.VerHorAlign.HoriziontalTop)

   End Sub

   Private Sub GunaButton1_Click(sender As Object, e As EventArgs) Handles GunaButton1.Click
       If (String.IsNullOrEmpty(nameadd.Text)) Then
           MessageBox.Show("يجب ادخال اسم العميل قبل الحفظ", "خطأ", MessageBoxButtons.OK, MessageBoxIcon.Error)
           Return
       End If
       Dim str As String = ("provider=microsoft.jet.oledb.4.0;data source=" & Application.StartupPath & "\MSME.mdb;user id=admin;jet oledb:database password=343282")
       Dim con As New OleDbConnection(str)
       Dim isds As New DataSet
       '==============================================================================================================
     


       Try



           Dim cmd As New OleDbCommand(str, con)
           'فتح الاتصال بمزود البيانات وهى قاعده البيانات
           Dim connectionstring As String = "provider=microsoft.jet.oledb.4.0;data source=" & Application.StartupPath & "\MSME.mdb;user id=admin;jet oledb:database password=343282"
           Dim newconnection As New OleDbConnection(connectionstring)
           cmd.Connection = newconnection
           cmd.CommandType = CommandType.Text
           'اضافه المعلومات التى تكتبها الى الجدول كل سجل تكتبه بما يماثله فى الجدول
           cmd.CommandText = "insert into DBET ([pName],[Email],[Phone],[ProjectName],[ProjectType],[About],[Photo]) values ('" & _
            nameadd.Text & "','" & emailadd.Text & "','" & phoneadd.Text & _
            "','" & pnameadd.Text & "','" & ptypeadd.Text & "','" & aboutadd.Text & "','" & photoadd.ImageLocation & "') "


           'فتح الاتصال وتاكيد الاضافه وبعد ذلك اغلاق الاتصال
           newconnection.Open()
           cmd.ExecuteNonQuery()
           newconnection.Close()
       Catch ex As Exception
           MessageBox.Show(ex.Message)
       End Try

       

       'اظهار رساله للمستخدم تبين له نجاح اضافته واغلاق الاتصال واغلاق الفورم بتاع الاضافه والذهاب الى الفورم الرئيسى
       MsgBox("تمت عملية الاضافة والحفظ في قاعدة البيانات بنجاح", 64, "حفظ الاضافة")

       nameadd.Text = ""
       emailadd.Text = ""
       phoneadd.Text = ""
       pnameadd.Text = ""
       ptypeadd.Text = ""
       aboutadd.Text = ""
   End Sub
 
   Private Sub GunaButton3_Click(sender As Object, e As EventArgs) Handles GunaButton3.Click
       OpenFileDialog1.Filter = "Image Formats (*.PNG; *.JPG; *.BMP) | *.PNG; *.JPG; *.BMP | All Files (*.*) | *.*"
       'Dim OpenFileDialog1 As New OpenFileDialog
       With OpenFileDialog1
           If OpenFileDialog1.ShowDialog = Windows.Forms.DialogResult.Cancel Then
               MsgBox("image is not choised")
               Return
           Else
               photoadd.ImageLocation = OpenFileDialog1.FileName
           End If
       End With
   End Sub
End Class


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


وده كود التعديل 
كود :
Imports System.Data.OleDb
Imports System.Data
Imports System.Globalization
Public Class UserControl2
   Dim con As New OleDbConnection("provider=microsoft.jet.oledb.4.0;data source=" & Application.StartupPath & "\MSME.mdb;user id=admin;jet oledb:database password=343282")
   Sub LoadDataToDGV()
       Dim da As New OleDbDataAdapter("select * from DBET", con)
       Dim dt As New DataTable()
       da.Fill(dt)
       DataGridView1.DataSource = dt
   End Sub
   Private Sub UserControl2_Load(sender As Object, e As EventArgs) Handles MyBase.Load
       Guna.UI.Lib.GraphicsHelper.DrawLineShadow(Me, Color.Black, 50, 20, Guna.UI.WinForms.VerHorAlign.HoriziontalTop)

   End Sub

   Private Sub GunaButton4_Click(sender As Object, e As EventArgs) Handles GunaButton4.Click
       If (DataGridView1.SelectedRows.Count = 0) Then
           MessageBox.Show("يجب تحديد البيانات المراد تعديلها اولا", "خطأ", MessageBoxButtons.OK, MessageBoxIcon.Error)
           Return
       End If


       

       'كود جلب البيانات
       Dim indx As Integer = DataGridView1.SelectedRows(0).Index
       nameed.Text = DataGridView1(1, indx).Value.ToString()
       phoned.Text = DataGridView1(2, indx).Value.ToString()
       emailed.Text = DataGridView1(3, indx).Value.ToString()
       pnameed.Text = DataGridView1(4, indx).Value.ToString()
       ptypeed.Text = DataGridView1(5, indx).Value.ToString()
       abouted.Text = DataGridView1(6, indx).Value.ToString()
       photoed.ImageLocation = DataGridView1(7, indx).Value.ToString()
   End Sub

   Private Sub GunaButton5_Click(sender As Object, e As EventArgs) Handles GunaButton5.Click
       LoadDataToDGV()

   End Sub

   Private Sub GunaButton1_Click(sender As Object, e As EventArgs) Handles GunaButton1.Click
       If (String.IsNullOrEmpty(nameed.Text)) Then
           MessageBox.Show("يجب ادخال اسم الصنف قبل الحفظ", "خطأ", MessageBoxButtons.OK, MessageBoxIcon.Error)
           Return
       End If

     

       Dim id As Integer = CInt(DataGridView1(0, DataGridView1.SelectedRows(0).Index).Value.ToString())
       Dim str As String = String.Format("update DBET set  pName='{0}', Email='{1}', Phone='{2}', ProjectName='{3}', ProjectType='{4}', About='{5}', Photo='{6}'  where ID ={7}", nameed.Text, phoned.Text, emailed.Text, pnameed.Text, ptypeed.Text, abouted.Text, photoed.ImageLocation, id)
       Dim cmd As New OleDbCommand(str, con)
       con.Open()
       cmd.ExecuteNonQuery()
       con.Close()
       MessageBox.Show("تم حفظ التعديل بنجاح")
       LoadDataToDGV()
   End Sub

   Private Sub GunaButton3_Click(sender As Object, e As EventArgs) Handles GunaButton3.Click
       OpenFileDialog1.Filter = "Image Formats (*.PNG; *.JPG; *.BMP) | *.PNG; *.JPG; *.BMP | All Files (*.*) | *.*"
       'Dim OpenFileDialog1 As New OpenFileDialog
       With OpenFileDialog1
           If OpenFileDialog1.ShowDialog = Windows.Forms.DialogResult.Cancel Then
               MsgBox("image is not choised")
               Return
           Else
               photoed.ImageLocation = OpenFileDialog1.FileName
           End If
       End With
   End Sub

   Private Sub photoed_Click(sender As Object, e As EventArgs) Handles photoed.Click

   End Sub


End Class

ملحوظة ان عارف اني الصورة لما تتحفظ بطريقة مباشرة داخل قاعدة البيانات بتاثر علي مساحة القاعدة بس ان عاوز الطريقة دي علشان البيانات الي هضيفها بعد كدة مش هتكون كتير
الرد }}}
تم الشكر بواسطة:


الردود في هذا الموضوع
طلب مساعدة في حفظ الصورة في قاعدة بيانات اكسس - بواسطة mazentq - 04-03-20, 12:59 AM


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


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