PDA

View Full Version : سوال: جلوگیری از ورود کد تکراری ونمایش یک پیغام با وی بی نت2010



farhad85
یک شنبه 24 آذر 1392, 12:16 عصر
سلام
من تو جدولم یه فیلد اصلی دارم که داده تگراری قبول نمیکنه حالا پیغامشو چطوری به فارسی تبدیل کنم که کاربر بفهمه این کد تکراری هستش؟ ممنونم:تشویق:

sagggad
یک شنبه 24 آذر 1392, 12:49 عصر
توسایت سرچ کن:MessageBox فارسی.کلی کامپوننت برات میاره

Hossis
یک شنبه 24 آذر 1392, 12:57 عصر
بهتره شما قبل از درج یا آپدیت اون فیلد، تشخیص بدید که آیا تکراری هست یا نه اگر هم می خواید خطا رو ترجمه کنه , دستور Insert رو درون try قرار بدید بعد از ex بررسی کنید که اون خطای تکراری بودن اگه هست ، مسج باکس نشون داده بشه

Try
'Your Code
Catch ex As Exception
If ex.Message.Contains("Duplicate") Then
MsgBox("مقدار وارد شده تکراری است و از قبل در جدول وجود دارد")
End If
End Try

farhad85
یک شنبه 24 آذر 1392, 13:32 عصر
با تشکر فراوان از شما. بدون خطا ثبت میکنه ولی پیام نمیده:متفکر:

Dim my_cb As New SqlCommandBuilder(my_da)

Try
'Your Code



If TextBox0.Text.Length = 10 Then
ErrorProvider1.Clear()

my_cn.Open()
'newrow = my_ds.Tables(0).NewRow
newrow("code_meli") = TextBox0.Text
newrow("name") = TextBox1.Text
newrow("family") = TextBox2.Text
newrow("n_p") = TextBox3.Text
newrow("sh_sh") = TextBox4.Text
'newrow("t_t") = HM_FarsiCalendar1.Text
newrow("m_sodur") = TextBox6.Text
newrow("tahsilat") = ComboBox66.Text
newrow("reshte") = TextBox8.Text
newrow("shoghl") = ComboBox68.Text
newrow("taahol") = ComboBox71.Text
newrow("t_khanevade") = TextBox11.Text
newrow("sokunat") = ComboBox67.Text
newrow("ostan") = ComboBox69.Text
newrow("shahrestan") = ComboBox70.Text
newrow("bakhsh") = TextBox15.Text
newrow("dehestan") = TextBox16.Text
newrow("rusta") = TextBox17.Text
newrow("m_khadamat") = TextBox18.Text
newrow("n_shora") = TextBox19.Text
newrow("h_shora") = TextBox20.Text
newrow("n_dehyar") = TextBox21.Text
newrow("h_dehyar") = TextBox22.Text
newrow("sh_hesab") = TextBox23.Text
newrow("sh_cart") = TextBox24.Text
newrow("h_keshavarz") = TextBox25.Text
newrow("code_posti") = TextBox26.Text
newrow("email") = TextBox27.Text
'newrow("t_sabtename") = TextBox28.Text
newrow("m_sabt") = TextBox29.Text
newrow("adres") = TextBox30.Text

my_ds.Tables("moshakhasat").Rows.Add(newrow)
my_da.InsertCommand = my_cb.GetInsertCommand()
my_da.Update(my_ds, "moshakhasat")
DataGridView1.DataSource = (my_ds)
DataGridView1.DataMember = "moshakhasat"
my_cn.Close()
ElseIf TextBox0.Text.Length < 10 Or TextBox0.Text = "" Then

ErrorProvider1.SetError(TextBox0, "کدملی مورد نظر را وارد ننموده یا کمتر از 10 رقم میباشد! لطفا مجددا بررسی نماببد؟")


'TextBox0.Select()

Exit Sub

End If
Catch ex As Exception
If ex.Message.Contains("Duplicate") Then
MsgBox("مقدار وارد شده تکراری است و از قبل در جدول وجود دارد")
End If
End Try
'================================================= ========================

Hossis
دوشنبه 25 آذر 1392, 07:13 صبح
اگر بدون خطا ثبت می کنه، شما باید اول فیلد رو چک کنید که آیا این مقدار توش هست یا خیر, اگر از قبل مقدار رو داشته باشه، پیام بده مثل:
"Select Id from moshakhasat where code_meli=" & TextBox0.Text
بعد این ای دی رو چک می کنیم ، اگر مقدار داشته باشه، به این معنی هست که این فیلد در جدول از قبل بوده لذا پیغام می دهید که این فیلد تکراری هست
منتها این کاری غیر اصولی هست, شما باید برای این نوع داده، فیلد رو طوری طراحی کنید و بسازید که تکراری قبول نکنه در این صورت اگر هم کاربر مقدار تکراری وارد کرد، خود دیتابیس خطا می ده