PDA

View Full Version : سوال: مشکل در Insert و Update فیلد Nullable



شاپرک
یک شنبه 31 شهریور 1387, 13:14 عصر
در صورتیکه برخی فیلد های یک جدول Nullable باشد ...
هنگام Insert و Update از فرم به دلیل اینکه پر کردن تمامی Textbox ها الزامی نمی باشد ... فیلد هایی که خالی ("") هستند و Type آنها در جدول عددی میباشد و مقدار پیش فرض هم ندارند ... خطای تبدیل ایجاد میشود

(Conversation from String """" to type long is not valid )

چه پیشنهادی دارید ؟

دستور SQL رو با چک کردن Textbox ها بسازم؟
در لایه DAL ؟

رضا عربلو
یک شنبه 31 شهریور 1387, 14:37 عصر
قبل از تبدیل رشته به عدد بهتر است چک بکنید که ای رشته شما ""، کاراکترهای غیر عدد و ... نمی باشد. چون تنها اینگونه خطاها ی تبدیل رشته به عدد می افتد بهتر است که از بلوک try...catch استفاده کنید. (در catch مقدار null به پارامترتان تخصیص دهید.)

شاپرک
یک شنبه 31 شهریور 1387, 14:46 عصر
فکر میکنم منظورم رو درست بیان نکردم ...
برای Insert یا Update یک فیلد از نوع عددی که به دلخواه کاربر هیچ مقداری برای اون وارد نشده چه دستور SQL ای باید نوشت؟ اگر فیلد از نوع رشته باشد وقتی کاربر چیزی وارد نکرد رشته " " میذارم ولی عددی چطور ؟ نمی خوام صفر بذارم .

ALI TT
دوشنبه 01 مهر 1387, 02:30 صبح
ببینید ، وقتی شما می گید فیلد عددی ، یعنی باید یک عدد توش بزارین

البته می تونید مقدار پیش فرض فیلد رو از 0 به مثلا هیچی تغییر بدین

KambizZandi
دوشنبه 01 مهر 1387, 02:59 صبح
قبل از ارسال اطلاعات به db فيلدهاي عددي رو با int.parse چک کنيد
اگر exception بده يعني يا خاليه يا اينکه اشتباه تايپ شده

شاپرک
سه شنبه 02 مهر 1387, 07:46 صبح
البته می تونید مقدار پیش فرض فیلد رو از 0 به مثلا هیچی تغییر بدین
چطور این کار رو انجام بدم ؟

کم حوصله
سه شنبه 02 مهر 1387, 13:34 عصر
سلام


Update Table1 Set Field1 = NullIf(@Parametr,'')
Insert Into Table1 (Field1) Values (NullIf(@Parametr,''))



در زمانی که بخواهیم هنگام ثبت اطلاعات در اس کیو ال در صورت مقارن بودن مقدار ثبت شده با مقدار مد نظر Null در فیلد ذخیره شود از این دستور استفاده می شود