PDA

View Full Version : بررسی تکراری بودن فیلد ویرایش شده



mohammad2407
دوشنبه 30 بهمن 1391, 18:34 عصر
سلام دوستان عزیز برنامه من یک باگ داره کاربر از قسمت ویرایش میتونه شماره تلفن تکراری وارد کنه

ولی در قسمت ثبت نمیتونه

میشه برای جلوگیری از وارد کردن اطلاعات تکراری در بخش ویرایش منو راهنمایی کنید

من میخوام کاربر در بخش ویرایش نتونه فیلد تکراری وارد کنه

اگر ممکن هست به صورت لینک آموزش بدید

mohammad2407
دوشنبه 30 بهمن 1391, 23:24 عصر
دوستان من یک راهنمایی میخوام . سخت که نیست

wolf_majid
دوشنبه 30 بهمن 1391, 23:52 عصر
جدا از اینکه به نظر من مشکلی نیست شماره تلفن تکراری باشه شما میتونید هنگام ویرایش بررسی کنید که این شماره در بانک وجو داره یا نه :
اگر وجود داره و کد (کلید جدول) با کد در حال ویرایش یکیه که هیچی , ویرایش کنه
در غیر اینصورت پیغام خطا صادر کنه

mohammad2407
سه شنبه 01 اسفند 1391, 00:10 صبح
من یک فرم دارم دارای فیلد های نام و نام خانوادگی و شماره تلفن

هر مشخصاتی که وارد میشه میتونه چند شماره تلفن داشته باشه

ولی یک شماره نمیتونه چند تا صاحب داشته باشه

من در رویداد TextChanged شماره تلفن گفتم که اگر شماره تلفن تکراری بود دکمه رو غیر فعال کنه
ولی خب احتمال داره شماره تلفن ویرایش نشه و از همون شماره استفاده بشه

چون وجود داره دکمه غیر فعال میمنه

یعنی کد من میره رکوردی که داریم روش ویرایش قرار میدیم مورد بررسی قرار میده و به میگه که یک شماره مثل این وجود داره و دکمه غیر فعال میکنه

چطوری بگم متوجه بشید :متفکر:

mohammad2407
سه شنبه 01 اسفند 1391, 00:13 صبح
کد ویرایش من

string srch = txtshnamber.Text;
var db = new tahvilDataContext();
if (srch == "")
{
button2.Enabled = false;
return;
}

var query = db.tahvils.Where(c => c.SHNamber == srch);

if (query.Count() == 0)
{
button2.Enabled = true;

}
else
{

button2.Enabled = false;
}

من باید یه کاری کنم که کد بالا رکوردی که دارم روش عملیات ویرایش انجام میدمو بررسی نکنه وبره رکورد های دیگه رو ببرسی کنه

Mahmoud.Afrad
سه شنبه 01 اسفند 1391, 00:40 صبح
اگر تعداد 1 بود باید چک کنید که اون شخص همین شخصی هست که داره ویرایش میکنه یا نه. مثلا اسمش رو مقایسه کنید.

string srch = txtshnamber.Text;
if (srch == string.Empty)
{
button2.Enabled = false;
return;
}
using (var db = new tahvilDataContext())
{
var query = db.tahvils.Where(c => c.SHNamber == srch);
int c = query.Count();
if (c == 0)
{
button2.Enabled = true;
}
else if (c == 1)
{
var item = query.Single();
if (item.Name == txtName.Text)
{
button2.Enabled = true;
}
else
{
button2.Enabled = false;
}
}
}

mohammad2407
سه شنبه 01 اسفند 1391, 00:54 صبح
اقا محمود مگه شما به داد ما برسید باز هم ممنون

از c ایراد میگیره در کد زیر
int c = query.Count();

mohammad2407
سه شنبه 01 اسفند 1391, 01:03 صبح
این هم متن خطا هست

Error 1 A local variable named 'c' cannot be declared in this scope because it would give a different meaning to 'c', which is already used in a 'child' scope to denote something else

Mahmoud.Afrad
سه شنبه 01 اسفند 1391, 05:17 صبح
داره میگه متغیر دیگه ای به نام c در این حوزه قبلا تعریف شده. اسم متغیر c را تغییر بده. اسمشو هرچی گذاشتی داخل if ها هم همون رو بکار ببر.