PDA

View Full Version : حرفه ای: ذخیره عکس در بانک



karim orooji
شنبه 17 بهمن 1388, 23:41 عصر
با سلام به دوستان گلم
اینم برنامه برای ذخیره عکسدر بانک بازیابی آن از بانک
که میاد عکس رو به صورت باینری در بانک ذخیره میکند
و برای بازیابی به همینطور
البته با کمک دوست خوبم جناب alireza_s_84

موفق باشید

Reza Safa
سه شنبه 20 بهمن 1388, 08:52 صبح
ممنون از لطفتون خیلب خوبه
آدم اگه دوستانی مثل شمارو داشته باشه غم نداره

adele60
سه شنبه 30 شهریور 1389, 16:20 عصر
منم میخوام تشکر کنم و بگم من هم از امروز به کمکتون نیاز دارم

aminvb
سه شنبه 30 شهریور 1389, 22:29 عصر
آقا چقدر ساده و مختصر و مفید و خوب بود
مدتها مشکل داشتم با این موضوع
به راحتی ( به همین خوشمزه گی :قلب: ) مشکلم با این موضوع حل شد .

ali_najari
چهارشنبه 31 شهریور 1389, 10:07 صبح
سلام دوستان
من ذخيره و بازخواني عكس از Database رو بلدم اما براي Update كردن عكس بايد چيكار كرد؟

kebriya
چهارشنبه 31 شهریور 1389, 10:42 صبح
سلام دوست عزیز
من توی پروژه ام عکسی رو از کاربر میگیرم و در یه image نمایش میدم و سپس اون رو در بانک ذخیره میکنم. حالا مشکلم اینه که اگه عکسی انتخاب نشده باشه چجوری بگم عکس را NULL بذاره و اینکه موقع نمایش اگه فیلد عکس خالی باشه چیکار کنم که خطا نده

ali_najari
چهارشنبه 31 شهریور 1389, 11:14 صبح
اين نمونه اي براي Update



Dim ms AsNew IO.MemoryStream
PictureBox1.Image.Save(ms, PictureBox1.Image.RawFormat)
Dim ArryPic AsByte() = ms.GetBuffer
ms.Close()
Dim cs AsString = "Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\Database1.mdf;Integrated Security=True;User Instance=True"
ObjCon.ConnectionString = cs
ObjCon.Open()
ObjCom = New SqlCommand
ObjCom.Connection = ObjCon
ObjCom.Parameters.Add(New SqlParameter("@picture", SqlDbType.Image)).Value = ArryPic
ObjCom.CommandText = "Update TBL1 set Pic=@picture Where Keytext='A1'"
ObjCom.ExecuteNonQuery()
ObjCon.Close()

ali_najari
چهارشنبه 31 شهریور 1389, 11:45 صبح
سلام دوست عزیز
من توی پروژه ام عکسی رو از کاربر میگیرم و در یه image نمایش میدم و سپس اون رو در بانک ذخیره میکنم. حالا مشکلم اینه که اگه عکسی انتخاب نشده باشه چجوری بگم عکس را NULL بذاره و اینکه موقع نمایش اگه فیلد عکس خالی باشه چیکار کنم که خطا نده

براي ذخيره كردن فيلد خالي فقط كافيه مقدار متغير رو برابر زير قرار بدي



System.Data.SqlTypes.SqlBinary.Null


به عنوان مثال



ObjCom.Parameters.Add(New SqlParameter("@picture", SqlDbType.Image)).Value = System.Data.SqlTypes.SqlBinary.Null

kebriya
چهارشنبه 31 شهریور 1389, 11:56 صبح
از کجا بفهمم کاربر عکسی رو انتخاب نکرده که اون رو Null کنم؟

Shahram_Shobeiri
چهارشنبه 31 شهریور 1389, 12:14 عصر
گفتید عکس رو از کاربر می گیرید و در image نمایش می دید. اگه منظورتون از image همون picturebox باشه با این شرط چک کنید:


if picturebox1.image = nothing then ...

ali_najari
چهارشنبه 31 شهریور 1389, 13:45 عصر
گفتید عکس رو از کاربر می گیرید و در image نمایش می دید. اگه منظورتون از image همون picturebox باشه با این شرط چک کنید:


if picturebox1.image = nothing then ...


دوست عزيز اين كد جواب نميده و بايد بصورت زير نوشته بشه



if picturebox1.image is nothing = true then
'شرط هاتون در صورت خالي بودن PictureBox
end if

hero4000
پنج شنبه 01 مهر 1389, 08:29 صبح
دوست عزيز اين كد جواب نميده و بايد بصورت زير نوشته بشه



if picturebox1.image is nothing = true then
'شرط هاتون در صورت خالي بودن PictureBox
end if


دوست عزيز اون True مال چيه

قسمت اول خودش مقايسه است
کد رو اينجوري بنويسيد


if picturebox1.image is nothing then
'شرط هاتون در صورت خالي بودن PictureBox
end if

kebriya
پنج شنبه 01 مهر 1389, 09:27 صبح
ممنون از همه دوستان من متوجه منظورشون شدم حالا اگه این فیلد در بانک خالی بود چجوری تست کنم؟

Shahram_Shobeiri
پنج شنبه 01 مهر 1389, 11:17 صبح
دوست عزيز اين كد جواب نميده و بايد بصورت زير نوشته بشه



if picturebox1.image is nothing = true then
'شرط هاتون در صورت خالي بودن PictureBox
end if


بله دوست عزیز. شما درست می گید. چون محیط vs در دسترس نبود این اشتباه لپی رخ داد! به هر حال متشکرم و اگه باعث به اشتباه افتادن کسی شد متاسفم.

راستی همونطور که دوستمون اشاده کردن اون "true=" رو هم لازم نداره و قابل حذفه

ali_najari
پنج شنبه 01 مهر 1389, 11:41 صبح
از این طریق چک کن ببیند که فیلدت پر هست یا خیر



If dt.Rows(0).Item(0).ToString = "" then
'دستورات در صورت خالی بودن فیلد
else
'دستورات در صورت پر بودن فیلد
end if

aminvb
پنج شنبه 01 مهر 1389, 14:47 عصر
دوستان یک سورس می زارین که اگه عکس نبود خطا نده
توو همین سورس برنامه اول اینو اعمال کنند:خجالت:

kebriya
پنج شنبه 01 مهر 1389, 17:02 عصر
دوست عزيز اين كد جواب نميده و بايد بصورت زير نوشته بشه



if picturebox1.image is nothing = true then
'شرط هاتون در صورت خالي بودن PictureBox
end if


این کد هم جواب نمیده بااینکه عکس نداره if رو رد میکنه بازم نشد:گریه:

morrning
پنج شنبه 01 مهر 1389, 23:59 عصر
به نظر من عکس ها رو جای دیگه ای ذخیره کنی خیلی بهتره هم حجم بانک پایین میاد و هم با آدرس دهی میتونی بعدا دوباره ازشون استفاده کنی

scorpion_sincity
جمعه 02 مهر 1389, 18:29 عصر
با سلام و سپاس
حالا اگر این عکس ذخیره شده را بخواهیم در کریستال ریپورت لود کنیم باید چکار کنیم؟؟

kebriya
یک شنبه 04 مهر 1389, 09:14 صبح
به نظر من عکس ها رو جای دیگه ای ذخیره کنی خیلی بهتره هم حجم بانک پایین میاد و هم با آدرس دهی میتونی بعدا دوباره ازشون استفاده کنی

اگه کاربر اشتباهی پوشه عکس ها رو پاک کنه چی؟

kebriya
شنبه 10 مهر 1389, 13:54 عصر
یکی به داد من برسه!!!!
چجوری عکس رو در پوشه ای بذارم و مسیر رو در بانک نگه دارم بعدش چجوری اون عکس رو در کریستال نمایش بدم
توروخدا یکی که کار کرده جواب بده

ali_najari
شنبه 10 مهر 1389, 14:55 عصر
یکی به داد من برسه!!!!
چجوری عکس رو در پوشه ای بذارم و مسیر رو در بانک نگه دارم بعدش چجوری اون عکس رو در کریستال نمایش بدم
توروخدا یکی که کار کرده جواب بده


كمي صبر كنيد تا يه نمونه برنامه براي اين كار واستون آماده كنم

mmd2009
شنبه 10 مهر 1389, 15:49 عصر
با سلام

من این برنامه رو قبلا نوشتم با زبان سی شارپ

آموزش: قرار دادن عکس( پس از تبدیل از ادرس عکس به عکس) در کریستال ریپورت (http://www.barnamenevis.org/forum/showthread.php?t=250142)

اگر نتونستی تبدیلش کنی به vb بگو تا تبدیلش هم بکنم برات

موفق باشید

kebriya
شنبه 10 مهر 1389, 17:26 عصر
ممنون فقط کاش نحوه ذخیره کردن در پوشه هم زحمتشو میکشیدین.
c# کار کردم فکر کنم مشکل تبدیل نداشته باشم اگه مشکلی بود مزاحم میشم

mmd2009
شنبه 10 مهر 1389, 17:43 عصر
دوست عزیز ذخیره که نمیکنم کپی می کنیم. مثلا با کد زیر :

from = ادرس عکس مورد نظرت
to = مقصد که میتونه یک پوشه تو خود برنامت باشه.
موفق باشی.



IO.File.Copy("from", "to")

kebriya
شنبه 10 مهر 1389, 18:01 عصر
ممنون از پیگیریتون
فقط میشه کاری کرد که وقتی backup میگیریم از این پوشه هم بگیره؟ و اینکه این پوشه رو قفل کنیم تا کاربر نتونه باز کنه یا حذف کنه؟

alirezash
شنبه 10 مهر 1389, 23:25 عصر
دوست عزیز karim orooji واقعاً ممنون
خیلی مشکلات رو حل کرددد