چک کردن قبل ثبت اطلاعات در دیتابیس sql
دوستان سلام ، با این کد ما میایم اطلاعات رو ثبت میکنیم توی دیتابیس درست ؟؟؟
گاهی وقتا برای اینکه تکراری ثبت نشه باید ، قبلش چک شه ، و ظاهرا با یه Select قبل Insert انجام میشه ، خوشحال میشم راهنماییم کنید :خجالت:
Try
cmd = New SqlCommand
cmd.Connection = con
con.Open()
cmd.CommandText = "INSERT INTO TblRegisterCode (SourceLang,MozoCode,SourceCode)
VALUES (@SourceLang,@MozoCode,@SourceCode)"
cmd.Parameters.AddWithValue("SourceLang", Cbo_Source_Lang.Text)
cmd.Parameters.AddWithValue("MozoCode", Txt_Mozoe_Source.Text)
cmd.Parameters.AddWithValue("SourceCode", Txt_Source_Code.Text)
If con.State = ConnectionState.Open Then
cmd.ExecuteNonQuery()
MessageBox.Show("کد جدید ثبت")
End If
Catch ex As Exception
MsgBox("خطا در دریافت اطلاعات" & ex.Message)
Finally
con.Close()
End Try
نقل قول: چک کردن قبل ثبت اطلاعات در دیتابیس sql
از این کد استفاده میکنم ولی اررور دارم ، چک میکنه که هست ، ولی بخواد بعدش Insert کنه اررور داره و به باز بودن datareader گیر میده و چند باری بستمش ولی بازم اررور دارم ، راهنمایی دوستان
If Txt_UserName.Text = Nothing Then MessageBox.Show(" usernamo bezan ")
Txt_UserName.Focus()
Else
Try
cmd = New SqlCommand
cmd.Connection = con
con.Open()
strsql = "select UserName from TblLogin where UserName=@UserName and [PassWord]=@PassWord"
cmd = New SqlCommand(strsql, con)
cmd.Parameters.AddWithValue("@UserName", Txt_UserName.Text)
cmd.Parameters.AddWithValue("@Password", Txt_PassWord.Text)
dr = cmd.ExecuteReader()
If con.State = ConnectionState.Open Then
If dr.Read Then
MessageBox.Show(" hastesh")
Else
cmd.CommandText = "INSERT INTO TblLogin (UserName,PassWord,UserLevel)
VALUES (@UserName,@PassWord,@UserLevel)"
cmd.Parameters.AddWithValue("UserName", Txt_UserName.Text)
cmd.Parameters.AddWithValue("PassWord", Txt_PassWord.Text)
cmd.Parameters.AddWithValue("UserLevel", Cbo_UserLevel.Text)
If con.State = ConnectionState.Open Then
cmd.ExecuteNonQuery()
MessageBox.Show("Reg shod")
End If
End If
End If
Catch ex As Exception
MessageBox.Show(ex.Message)
Finally
con.Close()
End Try
End If
نقل قول: چک کردن قبل ثبت اطلاعات در دیتابیس sql
سلام دوست عزیز کانکشنت رو بعد هر بار استفاده ببند مشکل حل میشه
نقل قول: چک کردن قبل ثبت اطلاعات در دیتابیس sql
سلام
طبیعتا در جدول شما فیلدی هست که مقدارش باید یونیک باشه (یکتا) و این رو از طریق مشخص کردن ایندکس روی جدول میشه انجامش داد. اگر همچین چیزی دارید ، با insert کردن رکورد تکراری ، Sql Server یک Exception صادر خواهد کرد و شما می تونید توی بلوک Try Catch استثنا رو مدیریت کنید (لیست Exception های Sql Server توی نت پیدا میشه).
با این توضیحات ، نیازی به Select قبل از عمل Insert وجود نداره.
نقل قول: چک کردن قبل ثبت اطلاعات در دیتابیس sql
با درود
من اوایل کارم با دات نت برای کار با بانک اطلاعاتی مثل همین نمونه سورس دوستمون کد ها را مستقیم تو برنامه مینوشتم که هم حجم برنامه بالا میرفت هم تو پشتیبانی و اراءه سرویس پکهای اصلاحی اذیت کننده میشد.یکبار از یکی از گزینه های آنالیز کد خود vs که استفاده کردم همه این مدل کد نویسی من را با هشدار ضعف امنیتی گزارش داد و پیشنهاد داد اونها رو داخل رویه های ذخیره شده و یا فانکشنهای خود sql بنویسم و بعد تو برنامه اونها رو فراخوانی کنم.
برای مثال این دوستمون خیلی راحت میشه تو sql با یه if exsits و یا روشهای دیگه چک کرد که ایا رکورد قبلا بوده یا نه .اگر بودهupdate استفاده بشه و در غیر اینصورت insert
نقل قول: چک کردن قبل ثبت اطلاعات در دیتابیس sql
جلوگیری از ثبت تکراری اطلاعات
بعد از فراخوانی بانک اطلاعاتی با استفاده از فیلتر (مثلاْ تاریخ) و قبل از ثبت اطلاعات از اعتبار سنجی و کد زیر استفاده میکنیم
If Ds.Tables("Me_Table").Rows.Count > 0 Then MessageBox.Show("This date is already registered", "Err", MessageBoxButtons.OK, MessageBoxIcon.Error) : Exit Sub
در این کد در صورت برقرار بودن شرط برنامه یک پیغام میده و از دستور خارج میشه
نقل قول: چک کردن قبل ثبت اطلاعات در دیتابیس sql
نقل قول:
نوشته شده توسط
محمد آشتیانی
سلام
طبیعتا در جدول شما فیلدی هست که مقدارش باید یونیک باشه (یکتا) و این رو از طریق مشخص کردن ایندکس روی جدول میشه انجامش داد. اگر همچین چیزی دارید ، با insert کردن رکورد تکراری ، Sql Server یک Exception صادر خواهد کرد و شما می تونید توی بلوک Try Catch استثنا رو مدیریت کنید (لیست Exception های Sql Server توی نت پیدا میشه).
با این توضیحات ، نیازی به Select قبل از عمل Insert وجود نداره.
ممنونم از شما ، سعی میکنم پیدا کنم ، و ظاهرا با IFexist این عمل تست میشه ، رفرنس ایرانیا پیدا نشد ، ممنونم ازتون