PDA

View Full Version : یک مشکل عجیب هنگام ذخیره عکس در DataBase



مهدی رحیم زاده
جمعه 04 اردیبهشت 1388, 19:46 عصر
سلام
من توی برنامم عکس رو توی دیتابیس ذخیره می کنم . بار اول مشکلی ندارم اما اگه فرم باز باشه و دوباره برای بار دوم بخوام این کار رو انجام بدم این اشکال رو میگیره ؟
دلیلش چیه :


The variable name '@ArNum_' has already been declared. Variable names must be unique within a query batch or stored procedure.

seven7777777
جمعه 04 اردیبهشت 1388, 20:16 عصر
سلام

فکر کنم اگه کدشم می ذاشتی بهتر می شد کمک کرد . این ارور وقتی بوجود می آد که یک query رو دوباره اجرا کنی یعنی در یک Sqlcommand کوئریتو نوشتی و اجرا می کنی و حالا اونو تغییر میدی و دوباره اجرا می کنی !!!
فکر کنم البته چون من چند وقت پیش به این مشکل برخوردم اما به طور قطع اگه شی Sqlcommand از بین بره و دوباره ایجاد بشه ، این مشکل حل میشه !!!

.:: کد یادت نره اگه حل نشد ::.

Sajjad.Aghapour
جمعه 04 اردیبهشت 1388, 23:08 عصر
دوتا کار میتونی بکنی:
یکی اینکه اول پارامترهات رو پاک کنی


cmd.Parameters.clear();

یکی هم اینکه چک کنی:


if(! cmd.parameters.contains("@p"))
cmd.Parameters.Add("@p",sql_type).value=..;
else
cmd.Parameters.AddWithValue("@p",..);

Sajjad.Aghapour
جمعه 04 اردیبهشت 1388, 23:19 عصر
ولی من یه مشکل دیگه با ذخیره فایل (حالا عکس یا هر چیز دیگه) دارم.اگه نوع فیلدم رو از نوع image بگیرم مشکلی نیست و به راحتی ذخیره میشه.اما اگه از نوع binary یا varbinary باشه خطا میده.با اینکه اندازه فایل از max فیلد کمتر هست...
متن خطا(نمی دونم .. یه همچین جیزی بود)


string or binary type would be truncate
execution ..... terminated

قبلا در مورد قطعه قطعه ذخیره کردن باینری یه چیزایی دیده بودم.اما درست یادم نیست....

علیرضا مداح
شنبه 05 اردیبهشت 1388, 11:56 صبح
سلام دوست عزیز،


ولی من یه مشکل دیگه با ذخیره فایل (حالا عکس یا هر چیز دیگه) دارم.اگه نوع فیلدم رو از نوع image بگیرم مشکلی نیست

استفاده ار نوع image بعد از SQL Server 2000 به هیچ عنوان توصیه نمی شود و دلیل باقی ماندن آن نیز به سبب Backward Compatibility می باشد، برای اینکار می توانید از نوع داده ی varbinary استفاده نمایید،
در SQL Server 2008 نیز نوع داده جدیدی به نام FILESTREAM اضافه شده است که در ذخیره آبجکت های از توع BLOB بهبود بسیاری را موجب شده است:

The FILESTREAM Data Type in SQL Server 2008 (http://www.sqlservercentral.com/articles/SQL+Server+2008/64088/)

و چگونگی بهره گیری از آن توسط LINQ:
http://blogs.microsoft.co.il/blogs/bursteg/archive/2008/05/12/linq-to-sql-filestream.aspx

،/

Sajjad.Aghapour
سه شنبه 08 اردیبهشت 1388, 19:46 عصر
بله من هم میدونم که نوع image توصیه نمیشه.نمی دونم در 2005 یا 2008 حذف شده یا نه.به همین خاطر سعی کردم با binary و varbinary امتحان کنم که در این صورت خطا میده.....

danial82
سه شنبه 22 اردیبهشت 1388, 15:04 عصر
علت اين ارور چیه؟؟؟؟؟؟؟؟


string or binary type would be truncate
execution ..... terminated