PDA

View Full Version : خالی گذاشتن یک فیلد در دیتابیس



alireza250
سه شنبه 31 شهریور 1394, 23:31 عصر
سلام بر دوستان عزیز
135434
تو برنامه بالا میخوام ب کاربر اجازه بدم ک مثلا آدرس یا حقوق رو خالی بذاره، ولی وقتی برنامه دیباگ میزنم اررور میده و میگه ک نمیشه این فیلدا خالی باشه درصورتی داخل خود دیتابیس هم تیک Allow nuls رو هم زدم.
توجه داشته باشید ک مثلا ب جای حقوق ک از نوع int64 هست نمیخوام 0 باشه، میخوام تو دیتاگریدویو خالی باشه.
لطفا راهنمایی کنید.
باتشکر

shaho.khedri
چهارشنبه 01 مهر 1394, 00:16 صبح
طبیعتاً وقتی اجازه داده باشی null ثبت بشه باید بتونی این کارو بکنی
مگر اینکه اون ستون، کلید باشه برای جدولت که در این صورت خود به خوت not null میشه

drsina
چهارشنبه 01 مهر 1394, 00:18 صبح
وقتی برنامه دیباگ میزنم اررور میده و میگه ک نمیشه این فیلدا خالی باشه

دقیقان چه ارروری میده ؟!

alireza250
چهارشنبه 01 مهر 1394, 00:23 صبح
برای آدرس اجازه میده خالی باشه ولی برای حقوق نمیذاره خالی باشه !
اررور:
135436

اینم فیلدای دیتابیس:
135437

shaho.khedri
چهارشنبه 01 مهر 1394, 00:26 صبح
شما دارید مقدار خالی رو تبدیل به Int64 می کنید.
با یه if میشه کنترلش کرد
یا به این صورت اون مقداری که دارید کانورت میکنید رو بنویسید:

txtSalary.Text.Equals("")?"":Convert.Int64(txtSalary.Text)

alireza250
چهارشنبه 01 مهر 1394, 01:06 صبح
باتشکر از از پاسخ شما، ولی متاسفانه این چیزی ک نوشتید اررور داره:
135438

shaho.khedri
چهارشنبه 01 مهر 1394, 08:58 صبح
اینطوری چی؟:

txtSalary.Text.Equals("")?null:Convert.Int64(txtSala ry.Text)
با کدی که امتحان کردید برای وقتی که فیلد دارای مقدار باشه مشکلی نبود؟

alireza250
چهارشنبه 01 مهر 1394, 11:11 صبح
ن مشکلی نداشت عزیز، با همین کد ساده

Convert.ToInt64(txtSalary.Text)
زمانی ک عدد وارد کنی مشکلی نداره و ب درستی ذخیره میشه.

shaho.khedri
چهارشنبه 01 مهر 1394, 13:18 عصر
اون که بله :لبخندساده:
الان مشکلتون حل شد آخرش یا نه؟

alireza250
چهارشنبه 01 مهر 1394, 13:29 عصر
ممنون بابت راهنمایی هاتون.:لبخندساده:
ن داداش کلا نمیذاره دیباگ بشه، اررور میده و برنامه کامپایل نمیشه!
ظاهرا کلا این دستور از لحاظ منطقی مشکل داره !

alireza250
چهارشنبه 01 مهر 1394, 21:11 عصر
باتشکر از آقای خدری بابت راهنمایی هاشون.
با این کد حل شد:
txtSalary.Text.Equals("")?0:Convert.Int64(txtSalary.Text)
یعنی ب جای null از 0 استفاده کردم و حل شد.
ممنونم