اخواني اليوم انا في اسواء حالتى البرمجية
كتبت نفس الكود ثلاث مرات بطرق مختلفه
وفي كل مره بيطلع غلط في شي
اغلب الاخطاء انو ما يوصل للداتا بيس او ما ينفذ الجمله الاولى جملة المقارنه يعني يتجاهلها تماما مع انو الداتا بيس فاضية
قمت غيرت اسامي كل شي
وكمان ما اشتغل
خلاص صار التحدي بيني وبين هدا الكود مع انو كود جدا هايف ومافيه اي شي بس ليه مش راضي يعمل
زاليك الثلاث طرق
Con.ConnectionString = ConnString
Con.Open()
SQL = "select * from COUNTALL"
Dp = New OleDb.OleDbDataAdapter(SQL, Con)
Dp.SelectCommand.ExecuteNonQuery()
Con.Close()
Dp.Fill(Rs, "COUNTALL")
Dim SearchRow() As DataRow = Rs.Tables("COUNTALL").Select("CODE='CL'")
If (SearchRow Is Nothing) Then
المشكلة انه يتجاهل هدة العباره مع انو الجدول فاضي
Rs.Tables("COUNTALL").Rows.Add(New Object() {"CL", "PIRY", 0})
If Rs.HasChanges Then
Dim AffectedDS As DataSet = Rs.GetChanges
Dim ComBuilder As New OleDb.OleDbCommandBuilder(Dp)
Dp.InsertCommand = ComBuilder.GetInsertCommand
Dp.Update(AffectedDS, "COUNTALL")
End If
else
وعندما ياتي الى هنا يعطي الخطا
NM = Convert.ToInt32(SearchRow("COUNT"))
NM = NM + 1
TextBox1.Text = NM
End If
End Sub
--------------------------------------------------------------------
الطريقة الاخرى
Con.ConnectionString = ConnString
Con.Open()
SQL = "select * from COUNTALL "
Dp = New OleDb.OleDbDataAdapter(SQL, Con)
Dp.SelectCommand.ExecuteNonQuery()
Con.Close()
Dp.Fill(Rs, "COUNTALL")
Dim SearchRow() As DataRow = Rs.Tables("COUNTALL").Select("CODE='CL'")
If (SearchRow Is Nothing) Then
ايضا هنا يتجاهل هده العباره مه انو الجدول فاضي
Con.Open()
SQL = " insert into COUNTALL (CODE,NAME,COUNT) values('cl','PIRY',0)"
هنا في بعض الاحيان يعطي خطا في جملة النسيرت
Dp = New OleDb.OleDbDataAdapter(SQL, Con)
Con.Close()
Else
نفس الخطاء يعطى هنا
NM = Convert.ToInt32(SearchRow("COUNT"))
NM = NM + 1
TextBox1.Text = NM
End If
End Sub
-----------------------------------------------------
الطريقة الثالثه
Con.ConnectionString = ConnString
Con.Open()
SQL = "select * from COUNTALL where code =cl"
Dp = New OleDb.OleDbDataAdapter(SQL, Con)
Dp.Fill(Rs, "COUNTALL")
Dp.SelectCommand.ExecuteNonQuery()
Con.Close()
'يقراء الرقم الموجود في جدول العدادات
If Rs.Tables("COUNTALL").Rows.Count < 1 Then
Con.Open()
SQL = " insert into COUNTALL (CODE,NAME,COUNT) values('cl','PIRY',0)"
Dp = New OleDb.OleDbDataAdapter(SQL, Con)
Dp.SelectCommand.ExecuteNonQuery()
Con.Close()
Else
NM = Rs.Tables("COUNTALL").Rows(0).Item(2)
NM = NM + 1
TextBox1.Text = NM
End Ifفي الكود الاخير معترض على جملة الانسيرت




