04-03-20, 12:59 AM
السلام عليكم ورحمة الله وبركته
ان عملت برنامج بلغة الفيجوال وقاعدة بيانات اكسس والبرنامج شغال تمام خالص معايا وبيفظ كل البيانات وبيعدل عليها كمان
بس المشكلة الوحيدة الي مش لقيلها حل ودورت كتير خالص ومفيش طريقة اشتغلت معايا هي اني عاوز اضيف مع البيانات دي صورة تتحفظ وتتخزن في قاعدة البيانات نفسها مش يحفظ المسار لا يحفظ الصورة نفسها جوه القاعدة مع البيانات ولما اعملها عرض من الداتا جريد فيو علشان اعدل عليها تظهر معايا واقدر اعدلها
فلو سمحت الي يقدر يعدل في كود المشروع ويضيف الكود بتاع حفظ الصورة اكون شاكر فضلة علشان والله دورت كتير ومفيش طريقة ظبطط معايا وشكرا
دي صورة قائمة ادخال وحفظ
ودي اكواد الحفظ
ودي صورة واجهة التعديل لما بحدد صف البيانات من داتا جريد فيو وادوس علي edit بيظهر البيانات في التكست بوك فانا عاوز يظهر معهم الصورة الي اتحفظ علشان لما اعدل
وده كود التعديل
ملحوظة ان عارف اني الصورة لما تتحفظ بطريقة مباشرة داخل قاعدة البيانات بتاثر علي مساحة القاعدة بس ان عاوز الطريقة دي علشان البيانات الي هضيفها بعد كدة مش هتكون كتير
ان عملت برنامج بلغة الفيجوال وقاعدة بيانات اكسس والبرنامج شغال تمام خالص معايا وبيفظ كل البيانات وبيعدل عليها كمان
بس المشكلة الوحيدة الي مش لقيلها حل ودورت كتير خالص ومفيش طريقة اشتغلت معايا هي اني عاوز اضيف مع البيانات دي صورة تتحفظ وتتخزن في قاعدة البيانات نفسها مش يحفظ المسار لا يحفظ الصورة نفسها جوه القاعدة مع البيانات ولما اعملها عرض من الداتا جريد فيو علشان اعدل عليها تظهر معايا واقدر اعدلها
فلو سمحت الي يقدر يعدل في كود المشروع ويضيف الكود بتاع حفظ الصورة اكون شاكر فضلة علشان والله دورت كتير ومفيش طريقة ظبطط معايا وشكرا
دي صورة قائمة ادخال وحفظ
ودي اكواد الحفظ
كود :
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
ملحوظة ان عارف اني الصورة لما تتحفظ بطريقة مباشرة داخل قاعدة البيانات بتاثر علي مساحة القاعدة بس ان عاوز الطريقة دي علشان البيانات الي هضيفها بعد كدة مش هتكون كتير