با سلام
در رویداد ذخیره چکار باید کرد وقتی اطلاعات رو دوباره ثبت میکنیم رکود جدید اضافه نشود و فقط تغییرات ذخیره شود یا اصلاً اتفاقی نیوفته و فقط ذخیره بشه
با سلام
در رویداد ذخیره چکار باید کرد وقتی اطلاعات رو دوباره ثبت میکنیم رکود جدید اضافه نشود و فقط تغییرات ذخیره شود یا اصلاً اتفاقی نیوفته و فقط ذخیره بشه
درود بر شما
بله منظورم در دیتا بیس هستش الان آی دی کلید اصلی هست ولی دکمه ثبت رو میزنم دوباره همون رکورد رو تکرار میکنه با تغییرات جدید
براا جلوگیری از اینکار مجبور شدم دکمه آپدیت بزارم میدونم این راهش نیست اگه ممکنه راهنمایی بفرمایید.
مشکلتون همینجاست!
چرا ایدی کلید اصلیه؟ ایدی رو نبایستی کلید اصلی میکردید....یکی دیگر از ستون ها رو که نباید تکراری باشه کلید اصلی میکردین.
برای مثال اگر کالایی ثبت میکنید در انبار ، نباید نام کالا تکراری باشه پس مجبوریم نام کالا را به عنوان کلید اصلی انتخاب کنیم.
ستون ایدی رو هم از نوع نامبر انتخاب کنید و هربار که رکورد ذخیره میکنید عددش رو خودتون ثبت کنید.برای مثال اخرین رکورد رو بخونید + 1 کنید تا ایدی رو تشکیل بدهد.
درود بر شما
حالا Error Handling رو چطور انجام بدم الان پیغامی رو که فرموین میده
The changes you requested to the table were not successful because they would create duplicate values in the index, primary key, or relationship. Change the data in the field or fields that contain duplicate data, remove the index, or redefine the index to permit duplicate entries and try again.
البته در حال حاضر دارم از try استفاده میکنم ولی باز جواب نمیده این کد رویداد ذخیره است اگه جایش لازمه تغییر بدم
Private Sub btn_hava_save_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_hava_save.Click
con = New OleDbConnection("provider=microsoft.jet.oledb.4.0 ; data source=" & Application.StartupPath() & "\db.mdb")
If txt_hava.Text = Nothing Then
MessageBox.Show("وارد کردن نوع سکه الزامیست", "اطلاعات سکه", MessageBoxButtons.OK, MessageBoxIcon.Information)
txt_hava.Focus()
Exit Sub
End If
Try
Dim strSQL As String =
"INSERT INTO t3 (hava,hava_price)" &
"VALUES (@hava,@hava_price)"
Dim cmd As New OleDbCommand(strSQL, con)
With cmd
.Parameters.Add(New OleDbParameter("@hava", txt_hava.Text))
.Parameters.Add(New OleDbParameter("@hava_price", txt_price.Text))
End With
con.Open()
cmd.ExecuteNonQuery()
con.Close()
Catch sqlExc As OleDbException
MessageBox.Show(sqlExc.ToString, "SQL Exception Error!",
MessageBoxButtons.OK, MessageBoxIcon.Error)
Catch exc As Exception
End Try
MessageBox.Show(" عملیات ثبت انجام شد",
"حواله های ارزی", MessageBoxButtons.OK,
MessageBoxIcon.Information)
Call hava_()
btn_hava_save.Enabled = False
frm_list.lbl_hava_rep.Visible = True
frm_list.lbl_hava_rep.ForeColor = Color.Green
frm_list.lbl_hava_rep.Text = "یک مورد جدید به لیست اضافه شد"
txt_hava.Text = Nothing
txt_price.Text = Nothing
End Sub
چه زمانی خطا میده؟
ببین این حالتی که اینجا نوشتم رو استفاده کن..در این حالت بعد از ثبت داده نیاز به رفرش دیتاگرید هم نداریم....
https://barnamenevis.org/showthread.p...B9%DA%A9%D8%B3