اخواني انا عاملة برنامج اول وكاتبة فيه الكود التالي
الكود هدا كان شغال معايا في 2003
وكنت مسويه الاتصال عبر الانتر فيس
وكان كل شي عال العال
بس لما حولت الى 2005 ما حصلت الداتا ادابتر
فكان علي اكتب الكود الخاص بالاتصال برمجيا
انا كتبته بس ما نفع معايه
ممكن احد من الاخوه الخبراء يشرحلي ليش ماضبط
وهذا الكود الاصلي
وبعده فيه الكود التصال الدي تم اضافته
Private Sub Form1_Load
Try
OleDbConnection1.Open()
OleDbDataAdapter1.SelectCommand.CommandText = "select * from Acounts order by AcountId desc"
OleDbDataAdapter1.SelectCommand.ExecuteNonQuery()
OleDbConnection1.Close()
OleDbDataAdapter1.Fill(DataSet11, "Acounts")
Catch ex As OleDbException
MessageBox.Show(ex.Message)
End Try
If DataSet11.Tables("Acounts").Rows.Count < 1 Then ' منشوف هون اذا في الجدول موجود معلومات ام لا اذا فاضي نضع الرقم واحد عدا ذلك نزيد عليه بمقدار واحد
x = 1
TextBox1.Text = x
Else
x = DataSet11.Tables("Acounts").Rows(0).Item(0)
x = x + 1
TextBox1.Text = x
End If
End Sub
Dim check As Boolean
Private Sub Button1_Click
check = checkexsists() 'هذا الفنكشن الذي يقوم بفحص هل الرقم موجود في الداتا بيس ام لا
If check = False Then
OleDbConnection1.Open()
OleDbDataAdapter1.SelectCommand.CommandText = "insert into Acounts (AcountId,AcountName) values('" & x & "','" & TextBox2.Text & "')"
OleDbDataAdapter1.SelectCommand.ExecuteNonQuery()
OleDbConnection1.Close()
MessageBox.Show("تم اضافة الالحساب الجديد", "تنبيه", MessageBoxButtons.OK, MessageBoxIcon.Information)
End If
End Sub
Function checkexsists()'هذه الفنكشن تقوم بالفحص اذا كان هناك رقم مشابه لهذا اولا
DataSet11.Clear()
OleDbConnection1.Open()
OleDbDataAdapter1.SelectCommand.CommandText = "select * from Acounts where AcountId='" & x & "'"
OleDbDataAdapter1.SelectCommand.ExecuteNonQuery()
OleDbDataAdapter1.Fill(DataSet11, "Acounts")
OleDbConnection1.Close()
If DataSet11.Tables("Acounts").Rows.Count < 1 Then
Return False
Else
ShowAGAIN() 'هذه الفنكشن عشان اذا موجود الرقم يروح و يزيد الرقم مره اخرى بمقدار واحد
Return True
End If
End Function
Sub ShowAGAIN()
Try
OleDbConnection1.Open()
OleDbDataAdapter1.SelectCommand.CommandText = "select * from Acounts order by AcountId desc"
OleDbDataAdapter1.SelectCommand.ExecuteNonQuery()
OleDbConnection1.Close()
OleDbDataAdapter1.Fill(DataSet11, "Acounts")
Catch ex As OleDbException
MessageBox.Show(ex.Message)
End Try
If DataSet11.Tables("Acounts").Rows.Count < 1 Then ' منشوف هون اذا في الجدول موجود معلومات ام لا اذا فاضي نضع الرقم واحد عدا ذلك نزيد عليه بمقدار واحد
x = 1
TextBox1.Text = x
Else
x = DataSet11.Tables("Acounts").Rows(0).Item(0)
x = x + 1
TextBox1.Text = x
End If
End Sub
End Class
فقط تم اضافه الكود التالي قبل البيج لود مع مراعه اني غيرت الداتا بيس من الملف المرفق مع البرنامج
bin
الي السي
اضفت التالي:
Dim x As Integer
Dim ConnString As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source =c:\sand.mdb"
Dim OleDbConnection1 As New OleDbConnection(ConnString)
Dim OleDbDataAdapter1 As New OleDb.OleDbDataAdapter
Dim Dataset11 As New DataSet()
علما ان الكود الاصلي اشتغل على 2003 كمان على 2005 لما تفتح البرنامج عادياقصد من غير تغيرات
بس لما تسوي واحد جديد على 2005 وتكتب نفس الكود باضافه السابق لم يعمل
وشكرا لكم