PDA

View Full Version : خطا بعد از حذف یک رکورد



mina.manesh
جمعه 14 تیر 1392, 19:20 عصر
بعد از حذف یک رکورد وقتی دکمه اضافه را کلیک می کنیم برای ایجاد یک رکورد جدید خطای زیر را می دهد
Concurrency violation: the DeleteCommand affected 0 of the expected 1 records
خطا در قسمت کد
Sub Save_Data()
With BsKoboz
.AddNew()
' .Current.item("koboz_Id") = TxtShKabz.Text
.Current.item("ShPay") = TxtShPay.Text
.Current.item("Person_Id") = TxtPerson_Id.Text
.Current.item("Users_id") = UserCode
.Current.item("indate") = StrDate
.Current.item("intime") = FormatDateTime(Now, DateFormat.ShortTime)
.Current.item("Azmayesh") = TxtAzmayesh.Text
.Current.item("minkarkard") = TxtMinKarkard.Text

.EndEdit()
KobozTableAdapter.Update(DsTelephon.Koboz خطا در این قسمت به شکل زرد رنگ)
End With

swallow.pa
جمعه 14 تیر 1392, 19:37 عصر
بعد از حذف یک رکورد وقتی دکمه اضافه را کلیک می کنیم برای ایجاد یک رکورد جدید خطای زیر را می دهد
Concurrency violation: the DeleteCommand affected 0 of the expected 1 records
خطا در قسمت کد
Sub Save_Data()
With BsKoboz
.AddNew()
' .Current.item("koboz_Id") = TxtShKabz.Text
.Current.item("ShPay") = TxtShPay.Text
.Current.item("Person_Id") = TxtPerson_Id.Text
.Current.item("Users_id") = UserCode
.Current.item("indate") = StrDate
.Current.item("intime") = FormatDateTime(Now, DateFormat.ShortTime)
.Current.item("Azmayesh") = TxtAzmayesh.Text
.Current.item("minkarkard") = TxtMinKarkard.Text

.EndEdit()
KobozTableAdapter.Update(DsTelephon.Koboz خطا در این قسمت به شکل زرد رنگ)
End With

مينا جان سلام
مي گيد خطا در حذف ولي كد ذخيره رو گذاشتيد كد حذف رو هم بذاريد
يك سوال اگه شما ركورد رو حذف كنيد فرم رو ببنديد و بعد بازش كنيد چه اتفاقي مي افته ايا ركورد رو حذف مي كنه يا نه؟
اگه درست توضيح بديد مي تونم كمكت كنم

mina.manesh
جمعه 14 تیر 1392, 20:15 عصر
مي گيد خطا در حذف ولي كد ذخيره رو گذاشتيد كد حذف رو هم بذاريد
Private Sub btnDelete_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDelete.Click
If MsgBox("مايل به حذف اطلاعات قبض " & DataGridView1.CurrentRow.Cells(0).Value & " " & DataGridView1.CurrentRow.Cells(1).Value & " هستيد؟", MsgBoxStyle.Critical + MsgBoxStyle.YesNo, Title) = MsgBoxResult.No Then Exit Sub
If Cn.State = ConnectionState.Closed Then Cn.Open()
Dim Cmd As New SqlClient.SqlCommand("DELETE From koboz WHERE koboz_Id= " & DataGridView1.CurrentRow.Cells(3).Value, Cn)
Cmd.ExecuteNonQuery()
Cn.Close()


MsgBox("اطلاعات قبض حذف شد ", MsgBoxStyle.Critical, Title)

End Sub
يك سوال اگه شما ركورد رو حذف كنيد فرم رو ببنديد و بعد بازش كنيد چه اتفاقي مي افته ايا ركورد رو حذف مي كنه يا نه؟ركورد رو حذف مي كنه

swallow.pa
جمعه 14 تیر 1392, 20:33 عصر
ببين الان مشخصه
احتمالا بعد از حذف و بستن فرم و دوباره باز كردن اون ركورد ذخيره ميشه
شما ركورد رو حذف مي كنيد ولي اون ركورد توي ديتاست و توي جدول توي ديتاست هست بعد مي اييد ركورد رو ايجاد مي كنيد احتمالا يكسري اي دي هايي هستن كه با ثبت ركورد جديد اون اي دي ها كانفيليت مي شن و يا جدول اپديت نميشه بهتره يك تابع درست كنيد با عنوان RowsToRemove
با استفاده از اين تابع ركورد توي جدول رو حذف كن

swallow.pa
شنبه 15 تیر 1392, 20:56 عصر
مشكلتون حل شد

mina.manesh
سه شنبه 18 تیر 1392, 17:18 عصر
دوست عزیز
مشکل حل نشد هنوز همان خطا را می دهدحتی با وجود درست کردن تابع RowsToRemove
این پیغام خطا:
Concurrency violation: the DeleteCommand affected 0 of the expected 1 records

مهدی د
سه شنبه 18 تیر 1392, 21:22 عصر
ممکنه مشکل مربوط به ارتباط جداولتان باشه یا ممکنه مشکل از تعریف فیلد اتونامبر باشه

swallow.pa
سه شنبه 18 تیر 1392, 22:24 عصر
پروژه ات اگه اموزشيه برام ايميل كن

tooraj_azizi_1035
چهارشنبه 19 تیر 1392, 13:33 عصر
علت بوجود اومدن این خطا اینه که رکوردی که می خواد حذف بشه در جدول وجود نداره یعنی رکورد مورد نظر به حافظه آورده شده و پس از حذف در حافظه انتظار میره هنوز در جدول بانک باشه چون وجود اون در حافظه به این معنی هست که در جدول بانک هم هست این دستور چون با عدم وجود رکورد در جدول مواجه میشه این خطا رو می ده.
یعنی عاملی قبل از اجرای این دستور حذف رکورد رو از جدول پاک کرده.

mina.manesh
پنج شنبه 20 تیر 1392, 20:12 عصر
در قسمت كد حذف، کد زیر را اضافه کردم مشکل حل شد
DsTelephon.Koboz .Clear

swallow.pa
جمعه 21 تیر 1392, 12:53 عصر
در قسمت كد حذف، کد زیر را اضافه کردم مشکل حل شد
DsTelephon.Koboz .Clear

اگه جدول به ديتاگريدي وصل نباشه اشكال نداره

mina.manesh
یک شنبه 23 تیر 1392, 20:05 عصر
خطا بعد ازذخیره رکورد
پیغام خطا:Concurrency violation: the UpdateCommand affected 0 of the expected 1 records
این خطا زمانی رخ می دهد که اول اطلاعات یک رکورد را اصلاح می کنم با کلیک روی دکمه اصلاح
کد اصلاح :
Private Sub btnEdit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEdit.Click

If MsgBox("اطلاعات قبض " & lblNameFamily.Text & " اصلاح شود؟", MsgBoxStyle.Question + MsgBoxStyle.YesNo, Title) = MsgBoxResult.No Then Exit Sub

If Cn.State = ConnectionState.Closed Then Cn.Open()
Dim Tsql As String = "UPDATE koboz Set shpay=" & TxtShPay.Text & ", azmayesh=" & TxtAzmayesh.Text & " ,minkarkard = " & TxtMinKarkard.Text & " ,contorfeli = " & TxtContorFeli.Text & " ,contorkabli= " & TxtContorKabli.Text & " ,karkard= " & TxtKarkard.Text & " ,mablaghkarkard= " & TxtMablaghKarkard.Text & " ,hazinehn= " & TxtHazineh.Text & " ,foriegncircuitous= " & TxtForiegnCircuitous.Text & " ,malyatfc= " & TxtMalyatFC.Text & " ,foriegnaright= " & TxtForiegnAright.Text & " ,malyatfa= " & TxtMalayatFA.Text & " ,abonman= " & TxtAbonamn.Text & " ,sayer= " & TxtSayer.Text & " ,bestankari= " & TxtBestankari.Text & " ,bedehi= " & TxtBedehi.Text & " ,sorathesab= " & TxtSorathesab.Text & " ,mablaghpay= " & TxtMablaghPay.Text & " ,kasrhezar= " & TxtKasrHezar.Text & ", datetopost='" & TxtDateToPost.Text & "', datemohlat= '" & TxtDateMohlat.Text & "',azdate= '" & TxtAzDate.Text & "',tadate= '" & TxtTaDate.Text & "'" & " WHERE koboz_Id= " & LblShKabz.Text
Dim Cmd As New SqlClient.SqlCommand(Tsql, Cn)
Cmd.ExecuteNonQuery()
Cn.Close()
With FrmKoboz.DataGridView1
.CurrentRow.Cells(4).Value = TxtShPay.Text
.CurrentRow.Cells(5).Value = TxtAzmayesh.Text
.CurrentRow.Cells(6).Value = TxtMinKarkard.Text
.CurrentRow.Cells(7).Value = TxtContorFeli.Text
.CurrentRow.Cells(8).Value = TxtContorKabli.Text
.CurrentRow.Cells(9).Value = TxtKarkard.Text
End With

MsgBox("اطلاعات قبض " & lblNameFamily.Text & " اصلاح شد ", MsgBoxStyle.Information, Title)
Me.Close()
End Sub
اما وقتی بلافاصله بعد از اصلاح یک رکورد می خواهم یک رکورد جدید رابه جدول اضافه کنم با کلیک روی دکمه اضافه ،خطا میدهد
کد اضافه کردن رکورد:
Sub Save_Data()
With BsKoboz
.AddNew()
.Current.item("ShPay") = TxtShPay.Text
.Current.item("Person_Id") = TxtPerson_Id.Text
.Current.item("Users_id") = UserCode
.Current.item("indate") = StrDate
.Current.item("intime") = FormatDateTime(Now, DateFormat.ShortTime)
.Current.item("Azmayesh") = TxtAzmayesh.Text

.EndEdit()
KobozTableAdapter.Update(DsTelephon.Koboz) خطا در این قسمت
End With
End Sub
لطفا راهنمایی کنید

swallow.pa
چهارشنبه 26 تیر 1392, 22:07 عصر
كدهاتو ديدم سردرد گرفتم
براي اينكه بتوني كدها رو درست بنويسي از اينها استفاده كن vb

THIS IS A TEST CODE



Private Sub btnEdit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEdit.Click

If MsgBox("اطلاعات قبض " & lblNameFamily.Text & " اصلاح شود؟", MsgBoxStyle.Question + MsgBoxStyle.YesNo, Title) = MsgBoxResult.No Then Exit Sub

If Cn.State = ConnectionState.Closed Then Cn.Open()
Dim Tsql As String = "UPDATE koboz Set shpay=" & TxtShPay.Text & ", azmayesh=" & TxtAzmayesh.Text & " ,minkarkard = " & TxtMinKarkard.Text & " ,contorfeli = " & TxtContorFeli.Text & " ,contorkabli= " & TxtContorKabli.Text & " ,karkard= " & TxtKarkard.Text & " ,mablaghkarkard= " & TxtMablaghKarkard.Text & " ,hazinehn= " & TxtHazineh.Text & " ,foriegncircuitous= " & TxtForiegnCircuitous.Text & " ,malyatfc= " & TxtMalyatFC.Text & " ,foriegnaright= " & TxtForiegnAright.Text & " ,malyatfa= " & TxtMalayatFA.Text & " ,abonman= " & TxtAbonamn.Text & " ,sayer= " & TxtSayer.Text & " ,bestankari= " & TxtBestankari.Text & " ,bedehi= " & TxtBedehi.Text & " ,sorathesab= " & TxtSorathesab.Text & " ,mablaghpay= " & TxtMablaghPay.Text & " ,kasrhezar= " & TxtKasrHezar.Text & ", datetopost='" & TxtDateToPost.Text & "', datemohlat= '" & TxtDateMohlat.Text & "',azdate= '" & TxtAzDate.Text & "',tadate= '" & TxtTaDate.Text & "'" & " WHERE koboz_Id= " & LblShKabz.Text
Dim Cmd As New SqlClient.SqlCommand(Tsql, Cn)
Cmd.ExecuteNonQuery()
Cn.Close()
With FrmKoboz.DataGridView1
.CurrentRow.Cells(4).Value = TxtShPay.Text
.CurrentRow.Cells(5).Value = TxtAzmayesh.Text
.CurrentRow.Cells(6).Value = TxtMinKarkard.Text
.CurrentRow.Cells(7).Value = TxtContorFeli.Text
.CurrentRow.Cells(8).Value = TxtContorKabli.Text
.CurrentRow.Cells(9).Value = TxtKarkard.Text
End With

MsgBox("اطلاعات قبض " & lblNameFamily.Text & " اصلاح شد ", MsgBoxStyle.Information, Title)
Me.Close()
End Sub


ما وقتی بلافاصله بعد از اصلاح یک رکورد می خواهم یک رکورد جدید رابه جدول اضافه کنم با کلیک روی دکمه اضافه ،خطا میدهد
کد اضافه کردن رکورد:

Sub Save_Data()
With BsKoboz
.AddNew()
.Current.item("ShPay") = TxtShPay.Text
.Current.item("Person_Id") = TxtPerson_Id.Text
.Current.item("Users_id") = UserCode
.Current.item("indate") = StrDate
.Current.item("intime") = FormatDateTime(Now, DateFormat.ShortTime)
.Current.item("Azmayesh") = TxtAzmayesh.Text

.EndEdit()
KobozTableAdapter.Update(DsTelephon.Koboz) خطا در این قسمت
End With
End Sub



وقتي از اينها استفاده كني كدهات قشنگ نوشته مي شه ميشه اونها رو خوند توي عكس نگاه كن با رنگ زرد هايلات كردم

اما بگذريم
من توي كدهات مشكلي نمي بينم اما هرچي هست مشكل توي ديتاتيبلهاي ديتاستت هست شما توي ويرايش داريد جدول ديتابيس رو اپديت مي كنيد اما جدول توي ديتاست رو نه
به اين دليله