View Full Version : جلوگيري ازثبت داده تكراري
Iran58
شنبه 13 تیر 1388, 12:29 عصر
من هنگاميكه مي خواستم اطلاعاتم راازطريق فرم به بانك موردنظر انتقال بدهم كه ازارسال اطلاعات تكراري جلوگيري كنم كدزيررامي نوشتم
Table1TableAdapter1.FillByprsonal(dataSet11. Table1, Convert.ToInt32(txtNumbrePersonal.Text));
if (dataSet11. Table1.Rows.Count == 0)
{
Table1TableAdapter1.Insert(txtfirstname.Text,txtla stname.Text,
Convert.ToInt32(txtNumbrePersonal)); ,
;( Table1TableAdapter1.Fill(dataSet11.Security
}
اين كدراهنگاميكه datasetوtableadapterوغيره رابصورت ويزاردبه فرم اضافه كرده بودم انجام مي دادم
حالا بدون ويزاردچگونه مي توانم عمليات موردنظرم راانجام بدهم.
Reza_Yarahmadi
شنبه 13 تیر 1388, 13:22 عصر
یه راهش اینه که توی جدول یه کلید اصلی تعریف کنی و کد درج در بانک رو توی بلاک try ,catch بذاری.
try
{
Table1TableAdapter1.Insert(txtfirstname.Text, txtlastname.Text, Convert.ToInt32(txtNumbrePersonal));
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}
اینطوری اگه رکورد تکراری باشه ثبت نمیشه و یه استثنا رخ میده و بدیهیه که بلاک catch یعنی پیغام خطا نمایش داده میشه
happy65_sh
شنبه 13 تیر 1388, 13:35 عصر
SqlCommand com = newSqlCommand("select * from yourtable where id=@id");
SqlDataReader dr = com.ExecuteReader();
if(dr.HasRows)
{
MessageBox.Show("قبلا این اطلاعات ذخیره شده است ");
dr.Close();
}
else
{
//غیر تکراری
}
منظور از id یکی از فیلدهای جدولت هست که کلید باشه.حتی می تونی چند تا فیلد را که هیچکدوم هم کلید نیستند باهم مقایسه کنی در واقع در شرطتت چیزی را چک می کنی که تکراری بودنش باعث عدم ثبت مجدد اطلاعات می شه...
Iran58
جمعه 26 تیر 1388, 12:33 عصر
سلام
مشكلم من اينجاست كه يك textboxدارم ومي خواهم شرط تكراري ياغيرتكراري بودن ازاين textboxمعلوم مي شودحالا مشكل من اينجاست كه چطوري اين textboxراچگونه بادستورات sqlمنطبق كنم.اگرمي شودباكدتوضيح دهيد.
باتشكر
Reza_Yarahmadi
جمعه 26 تیر 1388, 17:43 عصر
من فرض کردم فیلدی که میخوای چک کنی id است
SqlConnection Con = new SqlConnection("Connection String");
SqlCommand Cmd = new SqlCommand();
Cmd.CommandText = "Insert into TableName ( id, ...) values (@id, ...)";
Cmd.Parameters.AddWithValue("@id", textBox1.Text);
//Add Other Parameters
Cmd.Connection = Con;
Con.Open();
try
{
Cmd.ExecuteNonQuery();
MessageBox.Show("Your Command Accept");
}
catch
{
MessageBox.Show("This ID is existing");
}
finally
{
Con.Close();
}
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.