PDA

View Full Version : جلوگیری از درج مقدار خالی در جدول اسکیوال



pedram_ns
شنبه 10 اردیبهشت 1390, 07:47 صبح
با سلام
من تازه کار با اسکیوال سرور رو شروع کردم در جداولم برای فیلدهای مورد نظرم اجازه نمی دم مقدار خالی بگیرن اگر در محیط خود اسکیوال این فیلد ها رو خالی بذارم ارور می ده که فیلد نمی تونه مقدار خالی بگیره ولی اگر از درون صفحات وبم اطلاعات تکس باکس های مربوط به این فیلد ها رو خالی ارسال کنم در جدولم مقدار خالی می گیره و ارور نمی ده چرا؟

mehrdad85
شنبه 10 اردیبهشت 1390, 08:50 صبح
سلام
داخل جداول چی ذخیره میشه؟
شاید فیلد های داخل صفحات مقدار پیش فرض دارن در غیر اینصورت باید پیغام خطا بده
بعد از این که در صفحه وب مقدار خالی برای یه سری از فیلد ها ( که داخل دیتابیس نمیتونن مقدار خالی بگیرن) را ست کردی دیتابیس را تست کن ببین چه مقداری ذخیره کرده. خیلی خیلی خیلی بعیده که null باشه بعید که چه عرض کنم غیر ممکنه
حتما یه مقداری save کرده
اون مقدار را بگو چیه تا شاید بتونم بیشتر کمکت کنم

موفق باشید

clover
شنبه 10 اردیبهشت 1390, 09:07 صبح
در جدولم مقدار خالی می گیره و ارور نمی ده چرا؟
دقت کنید که در اس کیو ال، Empty String به معنی NULL نیست و خطایی دریافت نمی کنید.

اگر در محیط خود اسکیوال این فیلد ها رو خالی بذارم ارور می ده که فیلد نمی تونه مقدار خالی بگیره
اجازه نمیده که مقدار NULL بگیره، اگر شما اون کلمه ی NULL را از داخل فیلد حذف کنید، مقدار خالی یا Empty String می گیره

موفق باشید

pedram_ns
شنبه 10 اردیبهشت 1390, 11:57 صبح
ممنون از جواب هاتون.
فیلد های من خالیه و مقدار خالی(نه null) رو در جدول درج می کنه
همونطور که clover گفت اگر بصورت دستی مقدار فیلد ها رو خالی بذارم می پذیره خوب چکار کنم که اگر کاربر مقدار یک فیلد رو خالی گذاشت دیتابیس ارور بده مثل اکسس.

TeacherMath
شنبه 10 اردیبهشت 1390, 17:26 عصر
سلام.نگذار کاربر فیلدها را خالی بگذارد .

jamali_yosef
شنبه 10 اردیبهشت 1390, 17:58 عصر
می تونی با استفاده از کنترلهای validation خود asp.net جلوی فیلدهای خالی را بگیری .

pedram_ns
شنبه 10 اردیبهشت 1390, 19:05 عصر
بله در جریانم.
در اکسس مشخص می کردی که یک فیلد نباید خالی باشه و اگر خالی می موند دیتابیس ارور می داد و شما ارور رو به کاربر ارائه می کردی در اسکیوال اینطوری نیست؟
اصلا این تیکی که بغل هر فیلد به نام allow null هست برای چیه پس؟

b.paseban
شنبه 10 اردیبهشت 1390, 19:36 عصر
اون تیک برای اینه که ما موقع درج دیتا میتونیم این فیلد رو خالی بگزاریم(نه null).
خوب اگر اون رو null نگذاریم موقع دیج اگر اون فیلد رو پر نکنیم دیتا بیس ارور میده.
اگر میخواهی موقع دیج چک کنی که دیتای خالی درج نشه خوب از vlidation control استفاده کنید.

pedram_ns
شنبه 10 اردیبهشت 1390, 20:04 عصر
یعنی اسکیوال مثل اکسس راهی نداره که این کار رو به خود دیتابیس بسپاریم؟

mehrdad85
یک شنبه 11 اردیبهشت 1390, 07:42 صبح
سلام
دقیقا درسته
اگه یه textbox داخل فرم مقدار نگیره مقدار خالی واسه اون ست میشه نه null
فقط وقتی دیتابیس ارور میده که وقتی داری یه سطر از جدول دیتابیس را پر میکنی اصلا هیچ تغییر در یک فیلد ندی یعنی اگه با کد این کارو میکنی اصلا حرفی نزنی که اون فیلد چطوری تکمیل میشه یا اگه از data source استفاده میکنی اصلا هیچ پارامتری تکمیل کننده اون فیلد نباشه

همونطور که دوستمون گفت میتونی از validator استفاده کنی

موفق باشی

aserfg
یک شنبه 11 اردیبهشت 1390, 13:27 عصر
دوست عزیز در وب تا حد امکان باید اطلاعات در سمت کلاینت چک بشن تا بیخود یه پست بک صورت نگیره