قبول نکردن مقدار تکراری

diehard2007

عضو جدید
با سلام و خسته نباشید به شما . من یه combo box رو فرمم دارم که از دیتابیس اطلاعات رو می خونه مثلا می خوام از توش شماره 10 رو که یه بار تو دیتابیس ثبت شده رو دیگه ثبت نکنه نمی دونم چه کار کنم ممنون می شم کدش رو بذارید چون هر چی جستجو کردم چیزی پیدا نکردم
 

diehard2007

عضو جدید
با سلام و خسته نباشید به شما . من یه combo box رو فرمم دارم که از دیتابیس اطلاعات رو می خونه مثلا می خوام از توش شماره 10 رو که یه بار تو دیتابیس ثبت شده رو دیگه ثبت نکنه نمی دونم چه کار کنم ممنون می شم کدش رو بذارید چون هر چی جستجو کردم چیزی پیدا نکردم

مشکل حل شد
 

RIG

متخصص C#.net
خوبه که حل کردین اما گاهی جوابو بزارید دوستان هم استفاده کنن دوسته خوبم .
try
catch
finally
 

diehard2007

عضو جدید
آقا شرمنده من تازه شروع به برنامه نویسی کردم . با این کد مقادیر تکراری در دیتابیس ثبت نمی شه . فقط نمی دونم باید چطوری اولش یه پیغام بدم که فیلد هایی که بالا تعریف کردم خالی رد نشن و یه پیغام بده
private void btnAdd_Click(object sender, EventArgs e)
{
if (cbGhabz.Text ==""|txtTamirkar.Text==""|txtHazine.Text=="")
{
SqlConnection con = new SqlConnection("Data Source=.;Initial Catalog=MobileYazdi;Integrated Security=True");
con.Open();
SqlCommand cm = new SqlCommand(string.Format("select * from Repairs where CustomerID='" + cbGhabz.Text + "'"), con);
SqlDataReader dr = cm.ExecuteReader();
if (dr.Read())
{
MessageBox.Show("این شماره قبض قبلاً ثبت شده است","اخطار");
}
else

{
cm.CommandText =
"insert into Repairs(CustomerID,Tamirkar, GheteeMasrafi, GheymatehGheteeMasrafi, Price, SharheTamir, Date, Time)" + " values ('" + cbGhabz.Text + "','"+txtTamirkar.Text+"','"+txtGhetee.Text+"','"+txtGheymateGhetee.Text+"','"+txtHazine.Text+"','"+rtbSharheTamir.Text+"','"+txtDate.Text+"','"+txtTime.Text+"')";
con.Close();
cm.Connection.Open();
cm.ExecuteNonQuery();
cm.Connection.Close();
MessageBox.Show("گوشی تعمیر شده با موفقیت ثبت شد");
ShowData();
}
}

 

negin17h

مدیر تالارهای مهندسی کامپیوتر و رباتیکمتخصص #C
مدیر تالار
آقا شرمنده من تازه شروع به برنامه نویسی کردم . با این کد مقادیر تکراری در دیتابیس ثبت نمی شه . فقط نمی دونم باید چطوری اولش یه پیغام بدم که فیلد هایی که بالا تعریف کردم خالی رد نشن و یه پیغام بده
privatevoid btnAdd_Click(object sender, EventArgs e)
{
if (cbGhabz.Text ==""|txtTamirkar.Text==""|txtHazine.Text=="")
{
SqlConnection con = newSqlConnection("Data Source=.;Initial Catalog=MobileYazdi;Integrated Security=True");
con.Open();
SqlCommand cm = newSqlCommand(string.Format("select * from Repairs where CustomerID='" + cbGhabz.Text + "'"), con);
SqlDataReader dr = cm.ExecuteReader();
if (dr.Read())
{
MessageBox.Show("این شماره قبض قبلاً ثبت شده است","اخطار");
}
else

{
cm.CommandText =
"insert into Repairs(CustomerID,Tamirkar, GheteeMasrafi, GheymatehGheteeMasrafi, Price, SharheTamir, Date, Time)" + " values ('" + cbGhabz.Text + "','"+txtTamirkar.Text+"','"+txtGhetee.Text+"','"+txtGheymateGhetee.Text+"','"+txtHazine.Text+"','"+rtbSharheTamir.Text+"','"+txtDate.Text+"','"+txtTime.Text+"')";
con.Close();
cm.Connection.Open();
cm.ExecuteNonQuery();
cm.Connection.Close();
MessageBox.Show("گوشی تعمیر شده با موفقیت ثبت شد");
ShowData();
}
}


دوست عزیز سعی کنید اصولی مشکل رو حل کنید. کافی بود بر روی فیلد مورد نظر در جدول ایندکس بذارید و آن را Uniqe کنید. خود بانک کنترل رو انجام میده، هم سرعت برنامه شما بالا میره هم قابلیت اطمینان و هم به راحتی با گرفتن کد خطا متوجه می شید که تکراری هست :gol:
 

RIG

متخصص C#.net
پاسخ مهندس نگین درسته منم فکر کردم فیلد uniq گرفتی و با try catch جورش کردی . کد شما کاملا سرعتو پایین میاره و کاملا غلطه .
اما همین که سعی تونو کردید بسیار عالیه .
 

diehard2007

عضو جدید
ممنون از نظر شما دوست عزیز من تازه کارم . چطور می تونم در جدول ایدکس بذارم و فیلد مورد نظر رو uniq کنم ممنون می شم کد بالا رو همنطور که گفتید تغیرش بدید
 

RIG

متخصص C#.net
دوست من در مورد پایگاه داده و جداول و کلیل اصلی و .... باید اینارو تو پایگاه داده یاد بگیری
موفق باشی
 

negin17h

مدیر تالارهای مهندسی کامپیوتر و رباتیکمتخصص #C
مدیر تالار
ممنون از نظر شما دوست عزیز من تازه کارم . چطور می تونم در جدول ایدکس بذارم و فیلد مورد نظر رو uniq کنم ممنون می شم کد بالا رو همنطور که گفتید تغیرش بدید

در حالت design جدول روی جدول کلیک راست --> Index ... و جدید میزنی و IsUniqe رو هم Yes میزنی :gol:
 

Similar threads

بالا