ورود

View Full Version : مشکل در ذخیره کردن تصویر در بانک اطلاعاتی



پیام حیاتی
چهارشنبه 22 مرداد 1393, 04:22 صبح
سلام
این جدول من در SQL هست :

122222

این فرم برنامه :

122223

و این هم کوئری :



protected void Button1_Click(object sender, EventArgs e)
{
sqlserver sqls = new sqlserver(".", "University");
sqls.update("insert into master (m_pcode , m_name , m_family , m_melicode , m_phone , m_mobi , m_brithday , m_r_id , m_ma_id , m_address) values('" + m_pcode.Text + "','" + m_name.Text + "','" + m_family.Text + "','" + m_melicode.Text + "','" + m_phone.Text + "','" + m_mobil.Text + "','" + m_brithday.Text + "','" + m_course.Text + "' , '" + m_certificate.Text + "' , '" + m_address.Text + "')");
}




همه چیز به درستی کار می کند فقط نمیدانم برای کوئری ذخیره تصویر چی بنویسم و اون رو کجا قرار بدم؟
اساتید در انجمن تاکید کرده بودن از روش تبدیل به بایت استفاده نکنیم.
تشکر

Davidd
چهارشنبه 22 مرداد 1393, 08:01 صبح
همه چیز به درستی کار می کند فقط نمیدانم برای کوئری ذخیره تصویر چی بنویسم و اون رو کجا قرار بدم؟
اساتید در انجمن تاکید کرده بودن از روش تبدیل به بایت استفاده نکنیم.
تشکر
سلام. اساتيد نگفتن چرا؟
راهش همين تبديل به بايت هست. در ضمن بهتره به جاي Image از varbinary(MAX) استفاده كنيد. چون Image قراره در نسخه هاي جديد حذف بشه و امكانات اضافه تر از Varbinary(MAX) نداره.
متن از MSDN :
ntext , text, and image data types will be removed in a future version of Microsoft SQL Server. Avoid using these data types in new development work, and plan to modify applications that currently use them. Use nvarchar(max) (http://msdn.microsoft.com/en-us/library/ms186939.aspx), varchar(max) (http://msdn.microsoft.com/en-us/library/ms176089.aspx), and varbinary(max) (http://msdn.microsoft.com/en-us/library/ms188362.aspx) instead.

پیام حیاتی
چهارشنبه 22 مرداد 1393, 09:40 صبح
چون به مرور زمان با حجیم شدن حجم بانک سرعت میاد پایین.

Davidd
چهارشنبه 22 مرداد 1393, 09:49 صبح
چون به مرور زمان با حجیم شدن حجم بانک سرعت میاد پایین.

اون يه بحث ديگس. اگه حجم فايل هاي شما بيشتر از 200 KB هست بهتره به جاي ذخيره فايل در ديتابيس، آدرس فايل ذخيره بشه. بنابراين بايد يه پوشه براي عكس داشته باشي و نوع هم فيلد Image بايد varchar باشه نه image. نوع image بايت هاي فيال ذخيره ميكنه. براي ذخيره سازي هم بايد اول فايل كپي كني توي پوشه مورد نظر و بعد ادرسشو در بانك ذخيره كني. اين روش هم مشكلات خودشو داره و در BackUp و Restore بايد پوشه تصاوير هم كپي پيست بشه. اگه ميخاي از اين روش استفاده كني در مورد FileStream جستجو كن. با FileStream اون پوشه ميشه جزئي از بانك. اگه sql server 2012 استفاده ميكني كار با Filestream راحته.

پیام حیاتی
چهارشنبه 22 مرداد 1393, 10:00 صبح
خیر حجم هر عکس 30 کیلوبایت است.
پس روش آدرس دهی بدرد من نمیخوره.
کدهای ذخیره تصاویر در جدول در نت موجودن ، در همین انجمن هم کاربران و اساتید قرار دادن ولی من تمام دیشب تست میکردم در کدهای خودم آخرش نتیجه ای حاصل نشد :اشتباه:.
اینکه چطور با کوئری های خودم ترکیبشون کنم رو نمیدونم.

پیام حیاتی
چهارشنبه 22 مرداد 1393, 19:13 عصر
اساتید برای حل این مشکل هزینه ای اگر نیاز هست من حااضر به پرداخت هستم.