PDA

View Full Version : مشکل سطر تکراری در Database



m.khani_121
یک شنبه 01 مرداد 1391, 09:54 صبح
سلام دوستان . وقتی من یکی از فیلدهای table رو Key کردم ، ذیگه نمیشه اطلاعات تکراری توش وارد بشه .

بعد وقتی کاربر مقدار میده و اون مقدار تکراری باشه از برنامه میاد بیرون و خطا میده که تکراریه .

حالا چه جوری میتونم قبل از اینکه اطلاعات بره تو table ، یه چک بکنم ببینم تکراریه یا نه ، اگه بود با یه messegebox به کاربر اطلاعات بده ، که دیگه از برنامه نیاد بیرون !

Farshid007
یک شنبه 01 مرداد 1391, 10:11 صبح
public Boolean ISIN(string UserName)
{
objSQLcommand.CommandText = "select * from Users Where UserName=@";
objSQLcommand.Parameters.AddWithValue("@", UserName);
SqlDataReader DR = objSQLcommand.ExecuteReader();
DR.Read();
bool blnHasRows = DR.HasRows;
if (DR.IsClosed == false) DR.Close();
return blnHasRows;

}

اینو من از کد های خودم کپی کردم تو اسم جدول و .. را درست کن

Y_Safaiee
یک شنبه 01 مرداد 1391, 11:06 صبح
با سلام خدمت شما دوست عزیز

پس try و catch واسه چی ساخته شده؟دستور insert خودتونو داخل try بزارین و در catch یه پیغام ارور بزارین .

به همین سادگی

موفق باشین
بایت بایت

daneshjo90
یک شنبه 01 مرداد 1391, 11:41 صبح
يونس عزيز كاملا صحيح مي فرمايند

از دستور هاي try , catch استفاده كن

بهتر ميتوني خطاها رو كنترل كني

abdullah20
یک شنبه 01 مرداد 1391, 12:32 عصر
حالا اومدیم try و catch گذاشتیم و یه پیغام هم گذاشتم که تکراری است در این صورت هر مشکلی پیش بیاد این پیغام را میده حتی اگر کلید تکراری نباشد

Y_Safaiee
یک شنبه 01 مرداد 1391, 13:08 عصر
با سلام مجدد

دوست عزیزم abdullah20 (http://barnamenevis.org/member.php?190756-abdullah20) از شما بعید بود خودتون بهتر از من میدونین catch فقط یه قسمت برای دور زدن نیست بلکه مکان عالی ای هست برای مدیریت خطاها :




try
{

}
catch(SqlException ex)
{

}


اینم دسترسی به کد خطا :


try
{
//دستوراتتون
}
catch(SqlException ex)
{
switch (ex.Number)
{
case 2627:
MessageBox.Show("این کد پستی قبلا ثبت شده است");
break;
}

}



شما میتونین با بررسی کد خطایی که برگشت داده میشه متوجه شین مشکل از کجا بوده و پیغام متناسبو نمایش بدین(فیلد کلید خالی بوده,فرمت نامعتبره,اطلاعات تکراریه و ...)

موفق باشین
بایت بایت

abdullah20
یک شنبه 01 مرداد 1391, 14:12 عصر
درسته
از اول بای همین را بگید




دستور insert خودتونو داخل try بزارین و در catch یه پیغام ارور بزارین .




حرف من برای گفته ی قبلی شما بود نه این کدی که گذاشتید
اخه من فکر کردم شما گفتید بدون دادن کد خطا کلا یه پیغام گذاشته بشه:اشتباه: