PDA

View Full Version : نحوه جلوگیری از تکراری بودن یک فیلد



pedram_ns
دوشنبه 11 بهمن 1389, 09:31 صبح
با سلام
من در برنامه ام از اکسس استفاده می کنم در قسمت ثبت نام اطلاعات کاربر رو به همراه ایمیل آدرس می گیرم.
این ایمیل نباید تکراری باشه ولی کاربر می تونه اون رو خالی بذاره(فیلد ایمیل رو پر نکنه).
برای این کار اومدم در اکسس فیلد ایمیل رو به صورت زیر تنظیم کردم:

indexed Yes (No Duplicates)
allow zero length yes

در این حالت اگر کاربر فیلد ایمیل رو خالی بذاره ارور دریافت می کنه که یک مقدار تکراری وارد شده(در رکورد های دیگه مقدار خالی برای ایمیل وجود داره)

در یک قسمت دیگه کاربر می تونه اطلاعات رو ادیت کنه که اطلاعات در چند تکس باکس نشون داده می شه و کاربر ادیت می کنه اگر ایمیل خالی باشه ارور می ده

ولی اگر برای ادیت اطلاعات از یک گریدویو استفاده کنم و ایمیل رو خالی بذارم به درستی کار می کنه.

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

ممنون.

mehrdad85
دوشنبه 11 بهمن 1389, 09:37 صبح
سلام ، عرضم به خدمت شما یه سوال دارم ، از validator استفاده میکنید ؟یه دستور شرطی ساده : میتونی اول تست کنی ببینی فیلد ایمیل خالیه یا نه ؟ اگه خالی بود که هیچی اما اگه خالی نبود برو داخل db بگرد و ببین مقدار مشابهی قبلا داخل db ثبت شده یا نه ،موفق باشید

pedram_ns
دوشنبه 11 بهمن 1389, 09:52 صبح
بله بصورت کد نویسی می تونم این کار رو بکنم ولی اگر با امکانات خود اکسس بشه این کار رو کرد فکر کنم بهتر و سریع تر بشه.

pedram_ns
دوشنبه 11 بهمن 1389, 13:11 عصر
کمکی نیست؟

pedram_ns
سه شنبه 12 بهمن 1389, 14:23 عصر
سلام دوباره.
خوب در مورد کار با اکسس کسی نظری نداد با کد نویسی انجام دادم و یکم مشکل هست.
برای ثبت نام، اطلاعات کاربر به همراه ایمیل رو می گیرم ایمیل می تونه خالی باشه ولی نباید تکراری باشه با چک کردن ایمیل می تونم بفهمم که ایمیل تکراری هست یا نه.
مشکل در آپدیت هست وقتی کاربر بخواد اطلاعاتش رو ادیت کنه می تونه ایمیل رو هم تغییر بده باید چک کنم که ایمیل جدید تکراری نباشه برای این کار در دیتابیس می گردم تا مشابه اون ایمیل رو پیدا کنم و اگر مشابه اش نبود ایمیل جدید درج می شه.
با این کد اگر کاربر ایمیل رو تغییر نده و بقیه اطلاعات رو ادیت کنه ارور می ده چون کد یک ایمیل مشابه(که همون ایمیل خود اون فرده) رو پیدا می کنه.
باید چکار کرد که با کمترین کد نویسی این کار انجام بشه؟