الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

مشكلة في الحفظ في قاعدة البيانات

بدأه ريان1407 في 9 نوفمبر 2011 · 4 رد · 1,039 مشاهدة · في ADO.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

هذا الكود مايطلع فيه اخطاء

لكن المشكلة انو يضيف ويحذف في قاعدة البيانات فقط اثناء البرنامج شغال

وعندما اقفل الفيجوال بيسك وارجع افتح البرنامج لا يحدث اي تغيير

اي كأنه لم تحدث الاضافة او الحذف في قاعدة البيانات

لا يحدث اي تغيير في قاعدة البيانات

ارجو المساعدة

Imports System.Data

Imports System.Data.OleDb

Public Class Form1

Dim constr As String = "Provider=Microsoft.Jet.OLEDB.4.0;" & _

"Data Source =" & Application.StartupPath & "\db1.mdb"

Dim conn As New OleDbConnection(constr)

Dim dataSet1 As New DataSet

Dim sqlStr As String = " select * from device"

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

Dim frm2 As New Form2

frm2.Show()

Me.Hide()

End Sub

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

conn.Open()

Dim dataAdapter1 As New OleDbDataAdapter(sqlStr, conn)

dataAdapter1.Fill(dataSet1, "device")

conn.Close()

TextBox1.DataBindings.Add("Text", dataSet1, "device.الرقم")

TextBox3.DataBindings.Add("Text", dataSet1, "device.السم")

ChangePosition()

End Sub

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

Me.BindingContext(dataSet1, "device").Position = 0

ChangePosition()

End Sub

Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click

Me.BindingContext(dataSet1, "device").Position -= 1

ChangePosition()

End Sub

Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click

Me.BindingContext(dataSet1, "device").Position += 1

ChangePosition()

End Sub

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click

Me.BindingContext(dataSet1, "device").Position = Me.BindingContext(dataSet1, "device").Count - 1

ChangePosition()

End Sub

Public Sub ChangePosition()

Label3.RightToLeft = Windows.Forms.RightToLeft.Yes

Label3.Text = "السجل " & Me.BindingContext(dataSet1, "device").Position & _

" من " & Me.BindingContext(dataSet1, "device").Count - 1

End Sub

Private Sub Button7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button7.Click

If MsgBox("هل تريد الحذف السجل الحالي", MsgBoxStyle.OkCancel) = MsgBoxResult.Cancel Then

Exit Sub

End If

Dim SavInto As New OleDb.OleDbCommand

Dim dataAdapter1 As New OleDbDataAdapter(sqlStr, conn)

SavInto.Connection = conn

SavInto.CommandType = CommandType.Text

SavInto.CommandText = "DELETE FROM device WHERE الرقم ='" & _

Trim(TextBox1.Text) & "'"

conn.Open()

SavInto.ExecuteNonQuery()

dataSet1.Clear()

dataAdapter1.Fill(dataSet1, "device")

conn.Close()

MsgBox("تم الحذف")

ChangePosition()

End Sub

End Class

*******************************************

وهذا كودالفورم الثاني

Imports System.Data

Imports System.Data.OleDb

Public Class Form2

Dim frm1 As New Form1

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

Try

Dim SavInto As New OleDb.OleDbCommand

Dim constr As String = _

"Provider=Microsoft.Jet.OLEDB.4.0; Data Source =" & _

Application.StartupPath & "\db1.mdb"

Dim conn As New OleDbConnection(constr)

SavInto.Connection = conn

SavInto.CommandType = CommandType.Text

SavInto.CommandText = "INSERT INTO device(الرقم,السم)" & _

"values ('" & TextBox1.Text & "','" & TextBox2.Text & "') "

conn.Open()

SavInto.ExecuteNonQuery()

conn.Close()

MsgBox("بسم الله الرحمن الرحيم")

Me.Close()

frm1.Show()

Catch ex As Exception

Exit Sub

End Try

End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

Me.Close()

frm1.Show()

End Sub

Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

End Sub

End Class

#2

السلام عليكم ..

اقتباس
وعندما اقفل الفيجوال بيسك وارجع افتح البرنامج لا يحدث اي تغيير

المشكلة باعتقادي أنك وضعت ملف قاعدة البيانات ضمن ملفات المشروع .. و عندما تعمل عملية الــ Build .. يتم نسخ القاعدة إلى المجلد ...Bin\Debug ...

افتح البرنامج من الملف التنفيذي سوف لن تحصل هذه المشكلة ..

ضع القاعدة مباشرة في المجلد Bin\Debug .. طالما أنك تستخدم الاستعلامات ضمن الكود .. و احذفها من ملفات المشروع ...

1

لا إله إلا الله ... محمد رسول الله

لو كانت مشاركتي مفيدة و تريد تشجيعي على المزيد من العطاء , فضلا قم بتقييم المشاركة

المعرًف القديم : houssam11350_11350

من مواضيعي : ArabGenCode : مولد كود و إجراءات مخزنة و واجهات لجداول سيكوال سيرفر

#3

السلام عليكم

أنت تستخدم نظام ال Disconnected Mode

ومن أهم خصائصه أنه يقوم بتسجيل البيانات مؤقتا في ذاكرة الجهاز ( جدول وهمي ) إلى أن تقوم بعملية الحفظ النهائية للبيانات بعد عملية الحفظ أو الحذف أو التعديل

ولعمل حفظ نهائي في قاعدة البيانات قم بوضع الكود التالي في مفتاح وضعه على الفورمة لعمل الحفظ الأخير في قاعدة البيانات

* الكود

Dim Cmdb As New OleDbCommandBuilder
'=====================================
If dataSet1.HasChanges = True Then
    	Cmdb.DataAdapter = dataAdapter1
    	dataAdapter1.Update(dataSet1, "device")
    	MsgBox("DataBase Update Complete", MsgBoxStyle.Information)
Else
    	MsgBox("No Update Available", MsgBoxStyle.Exclamation)
End If

تم تعديل هذه المشاركة بواسطة Mady-AGC في 9 نوفمبر 2011 في 14:31

1

منحة للخريجين وطلاب الجامعات و المعاهد

دبلومة لتخريج مبرمج متخصص في هندسة صناعة البرمجيات وتصميم وبرمجة تطبيقات الأنترنت

سبحان الله وبحمده سبحان الله العظيم

#4
استعمل مايلي:

 Dim SavInto As New OleDbCommand

'Connect هو المتغير الخاص بالاتصال بقاعدة البيانات خاصتك
        SavInto.Connection = Connect
        SavInto.CommandType = CommandType.Text
        SavInto.CommandText = "INSERT INTO Table1([Field1], [Field2], [Field3], [Field4]) values ( '" & txt1.Text & "', '" & txt2.Text & "', '" & txt3.text & "', '" & txt4.Text & "')"

        Connect.Open()
        SavInto.ExecuteNonQuery()
        Connect.Close()

تم تعديل هذه المشاركة بواسطة tornado320 في 9 نوفمبر 2011 في 14:47

------------------

#5

السلام عليكم ورحمه الله وبركاته

اخي من خصائص ملف قاعدة البيانات في الفيجوال ستديو قم بتغيير الخاصيه CopyToOutputDirectory الى Copy Always

.:: Wish to become better and better ::.

مواضيع مشابهة