PDA

View Full Version : سوال: مقدار پیش فرض برای نوع داده ای Image



hastiam
چهارشنبه 12 بهمن 1390, 17:07 عصر
سلام
من عکس ها رو تو دیتابیس از نوع image گرفتم که Allow Null هست حالا می خوام وقتی کاربر اطلاعات لازم رو وارد کرد و فیلد تصویر رو پر نکرد در دیتابیس به جای مقدار null مقدار پیش فرض قرار بگیره.:متفکر:
در قسمت Default Value or Binding در sqlserver از مقدار پیش فرض استفاده می کنم اما اون مقدار رو نمی گیره بلکه null ثبت میکنه.:ناراحت:
مثلا وقتی نوع داده ای رو Datetime بگیریم می تونیم مقدار پیش فرض رو با (getdate()) و دادن مقدار DateTime.Now پر کنیم که null نباشه.:لبخندساده:
برای نوع داده ای image هم راهی به این شکل وجود داره؟:متفکر:
یک راه هم اینه که تو برنامم یک مقدار ثابت به این فیلد بدم :تشویق: مقدار ثابت رو برای نوع داده ای image چی بذارم؟:خجالت:
ممنون از راهنماییتون

xalerebvar
چهارشنبه 12 بهمن 1390, 17:12 عصر
می تونید یک تصویر پیش فرض داخل جدولتون ذخیره کنید، یعنی اگر کاربر تصویری را برای خودش انتخاب کرد که هیچی اما در غیر اینصورت همون تصویر پیش فرض رو داخل فیلد جدولت درج کن
یه راه دیگه هم اینه که یه تابع بنویسی که اگه مقدار داخل Image برابر Null بود خاصیت ImageUrl رو برابر یک تصویر پیش فرض بزاری
موقق باشی

hamid_shrk
چهارشنبه 12 بهمن 1390, 17:20 عصر
برای مقدار دادن تو دیتابیس به این لینک سر بزنید :
http://www.tizag.com/sqlTutorial/sqldatatypes.php

hastiam
چهارشنبه 12 بهمن 1390, 19:41 عصر
مشکلم رو حل کردم :تشویق::تشویق::تشویق: راه حل رو می نویسم تا بقیه هم استفاده کنند:لبخندساده:
وقتی فیلدی در دیتابیس را از نوع image می گیریم اطلاعات را باید به صورت باینری به این فیلد داد پس مقدار پیش فرضم را به این شکل در برنامه نوشتم :


byte[] data = new byte[(0x0000000001)];
this.Image = data;

در این صورت اگر کاربر تصویری انتخاب نکرد این مقدار پیش فرض در دیتابیس قرار میگیرد.
مشکل من این بود که به فیلد Image هر مقدار پیش فرضی می دادم error می گرفت.

myazdani
شنبه 16 دی 1391, 20:23 عصر
مشکلم رو حل کردم :تشویق::تشویق::تشویق: راه حل رو می نویسم تا بقیه هم استفاده کنند:لبخندساده:
وقتی فیلدی در دیتابیس را از نوع image می گیریم اطلاعات را باید به صورت باینری به این فیلد داد پس مقدار پیش فرضم را به این شکل در برنامه نوشتم :


byte[] data = new byte[(0x0000000001)];
this.Image = data;

در این صورت اگر کاربر تصویری انتخاب نکرد این مقدار پیش فرض در دیتابیس قرار میگیرد.
مشکل من این بود که به فیلد Image هر مقدار پیش فرضی می دادم error می گرفت.

ممنون
منم این مشکلو داشتم از کدتون استفاده کردم حل شد
حالا مشکل جدیدم اینه که چه جوری چک کنم متغیر data این مقدار پیش فرض رو نداشته باشه؟؟
یعنی می خوام اگه داخل متغیر مقداری غیر از این بود عکس رو داخل پایگاه داده ذخیره کنم.
نمیدونم شرط if ش چه جوری میشه؟؟ :گیج::متفکر:

myazdani
یک شنبه 17 دی 1391, 17:36 عصر
خواهشا اگر کسی می دونه وجود یا عدم وجود این مقدار پیش فرض رو بررسی کرد بگه:متفکر::عصبانی++:

hastiam
دوشنبه 18 دی 1391, 08:56 صبح
ممنون
منم این مشکلو داشتم از کدتون استفاده کردم حل شد
حالا مشکل جدیدم اینه که چه جوری چک کنم متغیر data این مقدار پیش فرض رو نداشته باشه؟؟
یعنی می خوام اگه داخل متغیر مقداری غیر از این بود عکس رو داخل پایگاه داده ذخیره کنم.
نمیدونم شرط if ش چه جوری میشه؟؟ :گیج::متفکر:
سلام
از دستور زیر میتونید استفاده کنید نمیدونم متوجه سوالتون شدم یا نه اگه غیر از اینه دوباره بپرسید، امیدوارم بتونم کمکتون کنم :


public Goods()
{
byte[] data = new byte[(0x0000000001)];
this.Image = data;
if(data !=byte[(0x0000000001)])
{
.......
}
}

من یک کلاس نوشتم و دستور بالا رو در اون کلاس نوشتم. :لبخندساده:

fakhravari
دوشنبه 18 دی 1391, 12:35 عصر
تست کن.
(object)DBNull.Value;