PDA

View Full Version : Validate کردن داده ها و متغیرها



RK977877
یک شنبه 05 مرداد 1393, 09:33 صبح
با سلام خدمت دوستان گرامی
تو یه پروژه که دارای چندین فرم هستش
من میخوام با استفاده از Attribute ها شروط مختلفی روی اطلاعات ورودی بزارم
مثلا در فرم اول بگم که کد حتما باید وارد بشه - اگه طول نام بیشتر از 50 هست اجازه ندهد و ....
یعنی به طور کلی بتونم متدی داشته باشم که کلیه صفات و نشانه های مربوط به فرمم رو به اون بدهم تا متد چک کنه و حاصلشو بهم برگردونه
از نوشتن کدهای اضافی جلوگیری بشه با استفاده از Attribute
با تشکر

parvizwpf
یک شنبه 05 مرداد 1393, 16:23 عصر
اگه منظور کار با دبتابیس هست خود Entity Framework این قابلیت رو داره. اگه دیتابیس نیست، باید خودتون همچین صفتی بنویسید

RK977877
یک شنبه 05 مرداد 1393, 16:29 عصر
خوب همین صفت رو چطوری بنویسم
بعدم اینکه فغلا کاری با دیتابیس ندارم فقلا کار اول من چک کردن مقادیر داخل فرممه
بعدا ثبت اطلاعات در داخل دیتابیسه
میشه راهنمائی کنید

parvizwpf
یک شنبه 05 مرداد 1393, 16:43 عصر
خب میگم اگه با Entity Framework کار کنید سمت وب خودش همه اینکارا رو انجام میده چرا میخواهید دوباره اینها رو بنویسید؟
http://msdn.microsoft.com/en-us/library/sw480ze8.aspx

RK977877
دوشنبه 06 مرداد 1393, 08:16 صبح
اول اینکه برنامه ما Asp نیست
متاسفانه شما منظور منو متوجه نشدید
ببینم شما برای اینکه بخواید یه اطلاعاتی را ثبت کنید مگه اول یکسری شروط رو بررسی نمیکنید ؟
مثلا اینکه نام رو باید حتما وارد کنید و ... یعنی شروط روی Object ها
منطور من اینه
هنوز قرار نیست چیزی تو دیتابیس ثبت بشه
اوکی ؟

RK977877
پنج شنبه 09 مرداد 1393, 09:07 صبح
ببخشید میشه یه نفر راهنمائی کنه
ممنون میشم

Mahmoud.Afrad
پنج شنبه 09 مرداد 1393, 09:59 صبح
باید کد بنویسی. میتونی کدهای اعتبارسنجی رو در یک کلاس بنویسی و در فرمهات ازش نمونه بسازی و استفاده کنی.
البته میتونی از کدهای آماده ای که دیگران نوشتند استفاده کنی
اعتبارسنجی کنترلها (گفته های آقای gwbasic (http://barnamenevis.org/member.php?25140-gwbasic) رو حتما بخون): http://barnamenevis.org/showthread.php?371628

اگر هم میخواهی متغیرها رو اعتبار سنجی کنی میتونی اونها رو به صورت پراپرتی کپسوله کنی و در هنگام set شدن پراپرتی عمل اعتبارسنجی رو انجام بدی.

برخی اعتبارسنجی ها هم زمان ثبت (در دیتابیس، فایل و ...) بایست صورت بگیرند.

RK977877
پنج شنبه 09 مرداد 1393, 12:17 عصر
ولی من یه مدل کلی برای همه فرمها میخوام
بصورت جنریک باشه
اونم تو C#
برنامه تحت ویندوزه

Mahmoud.Afrad
پنج شنبه 09 مرداد 1393, 13:32 عصر
منظورت از مدل کلی برای همه فرمها دقیقا چیه؟
توی ASP.NET هم شما مجبوری کنترل Validation مورد نظر رو به Page اضافه و بعد تنظیمش کنی ، اینجا هم همینطوره ؛ باید در هر فرم بنا به نیاز و متناسب با کنترلهایی که در فرم هست اعتبارسنجی مناسب صورت بگیره.

چه داده هایی رو میخواهی اعتبارسنجی کنی؟ چه اعتبارسنجی هایی مد نظرت هست؟ قراره ثبت در دیتابیس انجام بشه؟ چه زمانی نیاز به اعتبارسنجی داری؟

RK977877
شنبه 18 مرداد 1393, 16:26 عصر
بابا زمانی که میخوام اطلاعات فرم رو ذخیره کنم اول باید صحت اطلاعان ورودی رو چک کنم
وبعدش ذخیره و یا اصلاح کنم
منطورم اینه

plus
شنبه 18 مرداد 1393, 17:11 عصر
شما اگه مدل کلی برای Validation میخواین باید (و یا خیلی بهتره که) خود فرمهاتون هم مدل کلی و با ساختار مشخص داشته باشن.
برای مثال باید مشخص بشه که چه موقع باید Validation انجام بشه؟ میشه مثلا دکمه های خاصی تهیه کنید که در رویداد کلیک شون قبل از اجرای هر کدی فرم رو Validate کنن.
حالا خود Validate شدن فرم هم مسائل مربوط به خودش رو داره.اگه فرم ساختار مشخصی نداشته باشه و صرفا تعدادی کنترل باشه، باید به روشی کنترلهایی که قراره Validate بشن متمایز بشن...بعد از اون یک سیستم Validate میخواین که یک یا چند شرط رو به طریقی دریافت کنه، داده موجود در کنترل رو هم دریافت کنه و خروجی و احتمالا پیغام مناسب رو برگردونه...
این نکاتی که گفتم یک راه حل کامل نیستن فقط ایده هایی هستن که با فکر کردن بهش شاید بتونید یک مدل کلی برای Validation طراحی کنید...
------------
البته خود NET. سیستمی رو داره ولی به نظر من سیستم دردسر سازی هست...
اگه دقت کنید کنترل های WinForms، هر کدوم رویدادی به اسم Validating و Validated و مشخصه ای به نام CausesValidation دارن. فرم هم مشخصه ای با نام AutoValidate و متدهای با نام های Validate و ValidateChildren داره که با این رویدادها و متدها میتونید از سیستم خود WinForms برای Validation استفاده کنید.
میتونید در این مورد بیشتر جستجو کنید. http://msdn.microsoft.com/en-us/library/ms229603(v=vs.110).aspx