PDA

View Full Version : چطور میتونم در یک سلول در SQL مقدار Null درج کنم؟



esmaili65
چهارشنبه 05 مهر 1391, 00:08 صبح
دوستان من تو بانک اطلاعاتی SQL جدولی دارم که مقدار یکی از سلول های اون جدول رو داخل یک txtbox در #C قرار دادم تا نمایش داده بشه.
حالا میخوام با زدن دکمه حذف ، اون txtbox اطلاعاتش حذف بشه و در داخل سلول SQL هم بجای نمایش مقدار 0 (صفر) درج بشه Null (یعنی کلا هیچی تو سلول نباشه)
درضمن نوع سلول از نوع Int است. لطفا راهنمایی بفرمائید

danialafshari
چهارشنبه 05 مهر 1391, 00:38 صبح
اگه درست متوجه شده باشم

if (textbox1.text=="0")
{
text1.text="Null";
}

حمیدرضاصادقیان
چهارشنبه 05 مهر 1391, 08:16 صبح
سلام.
اگر از طریق Management Studio اون جدول رو تغییر بدید با ترکیب کلیدهای CTRL+0میتوانید اینکارو بکنید.

به جز همه این موارد ما تمام تلاشمون رو میکنیم مقدار Null رو در هیچ فیلدی درج نکنیم.چون در سرعت، گزارشگیری های مختلف ، بازدهی تاثیرات منفی داره.
من لزوم اینکارو متوجه نشدم.!:متفکر:

خسرو خان
چهارشنبه 05 مهر 1391, 08:19 صبح
سلام
فکر کنم از کلاس DBNull بتونی کمک بگیری .

esmaili65
چهارشنبه 05 مهر 1391, 19:38 عصر
ببینید من مجبور شدم در یک جدول ID جدول دیگه رو قرار بدم. (این دوتا جدول باهم در رابطه هستن)
حالا میخوام توی #C کدی بنویسم که اون ID رو حذف کنم. اما مشکل اینجاست که این ID داخل یک سلول از جدول قرار داره
اگه بخوام مقدار Null رو داخلش بریزم چون ID از نوع Int هست نمیشه و ارور میده اگه بخوام فقط TXTBOX رو خالی کنم فقط درج میکنه ( 0 ) که باز چون ID صفر ندارم باز هم ارور میده.
یه مقدار بشتر راهنمایی بفرمائین لطفا

tooraj_azizi_1035
پنج شنبه 06 مهر 1391, 09:04 صبح
اگه با دیتاست کار می کنی در Designer روی ستون مورد نظر کلیک کن و خاصیت Null Value رو از throw exception به Empty تغییر بده.
بعد تو برنامه هر جا که می خوای مقدار DBNull.Value رو به فیلد مورد نظر ست کن.
Hope this help!

و در ضمن منظور مهندس صادقیان فکر می کنم Ctrl+0 باشه.

esmaili65
پنج شنبه 06 مهر 1391, 21:08 عصر
اگه با دیتاست کار می کنی در Designer روی ستون مورد نظر کلیک کن و خاصیت Null Value رو از throw exception به Empty تغییر بده.
بعد تو برنامه هر جا که می خوای مقدار DBNull.Value رو به فیلد مورد نظر ست کن.
Hope this help!

و در ضمن منظور مهندس صادقیان فکر می کنم Ctrl+0 باشه.

دوست عزیز اصلا این قسمت هایی که گفتی رو پیدا نکردم؟ میشه یکم واضح تر بگین

drstrike
پنج شنبه 06 مهر 1391, 22:50 عصر
اگه با دیتاست کار می کنی در Designer روی ستون مورد نظر کلیک کن و خاصیت Null Value رو از throw exception به Empty تغییر بده.
بعد تو برنامه هر جا که می خوای مقدار DBNull.Value رو به فیلد مورد نظر ست کن.

دوست عزیز مقدار int رو به نمیشه به (Empty) یا (Null) تبدیل کرد. منم به همین مشکل برخوردم سرچ کردم گفتن از DBNull استفاده کن اما فعلا جواب نگرفتم

اگه کسی راهشو میدونه مارو نجات بده :)

tooraj_azizi_1035
جمعه 07 مهر 1391, 11:50 صبح
اگر با Wizard شما DataSet رو ساخته باشید در این صورت شما یک Typed DataSet خواهید داشت.
برای ست کردن یک فیلد int در صورتی که خاصیتی که گفتم رو ست کنید تا به خطا بر نخورید، می تونید از متد SetFieldNameToNull() استفاده کنید که به صورت Strongly-Typed تولید شده.
مثلاً من در یک برنامه برای ست کردن مقدار شماره فاکتور به null از متدی که Wizard تولید کرده بود مقدار فیلد InvoiceID رو به Null ست کردم:

InvoiceDataRow row=MyDataSet.Invoices.Rows.First();
row.SetInvoiceIDToNull();

دوستی که گفت از کجا DataSet رو بیارم در Solution Explorer روی دیتاست دوبار کلیک کنید و سپس جدول مورد نظر رو انتخاب و فیلد مورد نظر و F4 و ادامه...

این رو هم تست نکردم:
sBO.Client_id = System.Data.SqlTypes.SqlInt32.Null;