Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,037

HOME > .NET Framework > Forum > สอบถามปัญหาการ Binding รูปภาพออกมาแสดงใน picturebox (การเก็บ data type ชื่อรูปในฐานข้อมูล,และ Folder ที่เก็บรูปในโปรเจค)



 

สอบถามปัญหาการ Binding รูปภาพออกมาแสดงใน picturebox (การเก็บ data type ชื่อรูปในฐานข้อมูล,และ Folder ที่เก็บรูปในโปรเจค)

 



Topic : 114238



โพสกระทู้ ( 33 )
บทความ ( 0 )



สถานะออฟไลน์




ผมจะ binding รูปออกมาแสดงใน Picturebox โดยได้เขียนโค้ดแบบนี้ แต่รูปไม่ออกแถม error ด้วยครับตรงบรรทัดนี้เลย
PictureBox1.DataBindings.Add("Image", bindingsrc, "pro_pic", True)
แล้วผมงงว่ามันจะดึงรูปมาจากไหน เพราะในโปรเจค VB ผมมันมี folder Resources ไว้สำหรับเก็บรูปอยู่แล้ว
......และอีกอย่างนึงครับใน ดาต้าเบสผมจะต้องเก็บชื่อของรูปใช่มั้ยครับตรง Data type ของ ฟิล pro_pic ผมใช้เป็น varchar(100)
สมมุติ ผมมีรูปชื่อ 1.jpg ผมก็ 1.jpg ในช่อง pro_pic ไปเลยใช่มั้ยครับ (ใน folder Resources มีรูป 1.jpg อยู่แล้วครับ )

แล้วผมมี ฟังก์ชั่น แปลงรูปภาพใน picturebox เป็น Byte array (อันนี้น่าจะใช่ตอนบันทึกกับแก้ไข)
Private Function readimage() As Array
        Dim memstream As New IO.MemoryStream()
        PictureBox1.Image.Save(memstream, Drawing.Imaging.ImageFormat.Bmp)
        Return memstream.ToArray()
    End Function


--------------------และตัวรับ ฟังก์ชั่น ----------------
If Not (PictureBox1.Image Is Nothing) Then
 Dim pic1() As Byte = readimage()
        command.Parameters.AddWithValue("pic", pic1)
end if


-------------------ตอนบันทึก ----------------
sql = "INSERT INTO Product(pro_pic) VALUES(pic1)"




Tag : .NET, Ms SQL Server 2008, VB.NET, VS 2010 (.NET 4.x)









ประวัติการแก้ไข
2015-02-06 03:58:21
2015-02-06 03:58:42
Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2015-02-06 03:57:21 By : visvisit View : 1585 Reply : 10
 

 

No. 1



โพสกระทู้ ( 4,440 )
บทความ ( 23 )



สถานะออฟไลน์
Facebook

Code
PictureBox1.DataBindings.Add("Image", bindingsrc, "pro_pic", True)


ค่าที่ได้ออกมาก็เป็น array ไม่ใช่เรอะครับ
ต้องแปลงจาก array กลับมาเป็น picture

สรุป คือ ไม่น่าจะใช้ DataBindings ตรงๆได้ครับ






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-02-06 07:51:34 By : lamaka.tor
 


 

No. 2



โพสกระทู้ ( 93 )
บทความ ( 0 )



สถานะออฟไลน์


เสนออีกแนวทางครับ
เก็บรูปไว้ใน Folder Resources แล้วใช้การแสดงรูปโดยการอ้าง path โดยเก็บ path ไว้ใน database
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-02-06 10:08:53 By : poomberry
 

 

No. 3

Guest


จากที่ดอ่านมาแล้ว มันไม่สอคล้องกันสักอย่างเลยครับ
- เก็บรูปภาพเป็นชนิดข้อมูลเป็น Varchar ซึ่งโดยปกติแล้ว Varchar จะใช้เป็นตัวอักษรเท่านั้นครับ
- ถ้าจะเก็บรูปภาพจริงๆ ควรเลือก Type เป็น ImageFile น่าจะเหมาะสมกว่าครับ
เสนอแนะวิธีดังนี้ครับ
1. ถ้าจะเก็บเป็น Varchar แนะนำให้เก็บเป็น Path ของรูปภาพครับ แล้วเวลาเรียกมาแสดงผล ค่อยดึงมาจาก Path นั้นๆ อีกที
2. ถ้าจะเก็บเป็น ImageFile จะยุ่งยากหน่อย ตอนดึงขึ้นมาแสดงผล ต้องแปลงข้อมูล ไบท์ต่างๆ เป็นข้อมูลรูปภาพอีกทีครับ (วิธีนี้ไม่แนะนำ ถ้าต้องการ Performance เยอะๆ ครับ)
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-02-06 10:40:42 By : thaidevelopment.net
 


 

No. 4



โพสกระทู้ ( 33 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 2 เขียนโดย : poomberry เมื่อวันที่ 2015-02-06 10:08:53
รายละเอียดของการตอบ ::
ใช่ครับผมตั้งใจจะเก็บ path ไว้ใน ดาต้าเบสแล้วเรียกรูปจาก Folder Resources ในโปรเจค แต่ตอนนี้ผมไม่มีโค้ดตัวอย่างเลยอะครับ
มีแต่ โค้ด PictureBox1.Image = My.Resources._1 (สมมุติ ผมมีรูป 1.jpg อยู่ใน Resources) แค่ดึงรูปมาแสดงแค่นั้นเอง
.....อยากได้โค้ดตัวอย่าง ตอนเรียกมาแสดงและตอนบันทึกด้วยอ่ะครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-02-06 19:42:13 By : visvisit
 


 

No. 5



โพสกระทู้ ( 4,440 )
บทความ ( 23 )



สถานะออฟไลน์
Facebook

ตอบความคิดเห็นที่ : 4 เขียนโดย : visvisit เมื่อวันที่ 2015-02-06 19:42:13
รายละเอียดของการตอบ ::
โค๊ดไม่ซับซ้อนครับ

openfiledialog ธรรมดา แล้ว Save DB

ตอนเรียกใช้ก็
pictureBox1.Image = Image.FromFile(........);

แค่นั้นครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-02-07 10:20:11 By : lamaka.tor
 


 

No. 6



โพสกระทู้ ( 33 )
บทความ ( 0 )



สถานะออฟไลน์


ผมแก้ได้แล้วครับ ตอนแรกจะเก็บเป็น path file แต่ลืมไปว่าต้องมี folder รูปสำหรับบันทึกรูปอีกต่างหาก ถ้าจะเก็บไว้ใน resources มันก็จะรวมกับรูปอื่น ๆ ในใช้ออกแบบ ผมเลยใช้วิธีแปลง byte array เลย ช้าชั่งมัน ห้าๆๆ เพราะว่ามีหนังสือ vs อยู่ ขอบคุณทุก ๆท่านมากเลยนะครับที่ให้คำแนะนำ อิอิ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-02-08 06:28:41 By : visvisit
 


 

No. 7



โพสกระทู้ ( 33 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 1 เขียนโดย : lamaka.tor เมื่อวันที่ 2015-02-06 07:51:34
รายละเอียดของการตอบ ::
.......ขอถามอีกนิดนะครับ พอดีผมจะแก้ไขรูปเคลียร์ picturebox ให้เป็น nothing แล้วบันทึกต้องใส่ไงเหรอครับ แต่ตอนเพิ่ม picturebox เป็นค่าว่างได้อยู่ครับ แต่ตอน update เข้าดาต้าเบสจากที่มีรูปแล้วเคลียร์ มันบันทึกไม่ได้ง่ะครับ

อันนี้โค้ดตอนเพิ่มครับ

If Not (PictureBox1.Image Is Nothing) Then
Dim memStream As New IO.MemoryStream()
PictureBox1.Image.Save(memStream, Drawing.Imaging.ImageFormat.Bmp)
Dim bytearr() As Byte = memStream.ToArray()
command.Parameters.AddWithValue("pic", bytearr) '.ใส่ตรงนี้เป็น ("pic",DBNull.Value) ก็ไม่ได้อะครับ




ประวัติการแก้ไข
2015-02-09 07:41:20
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-02-08 20:09:27 By : visvisit
 


 

No. 8



โพสกระทู้ ( 4,440 )
บทความ ( 23 )



สถานะออฟไลน์
Facebook

ตอบความคิดเห็นที่ : 7 เขียนโดย : visvisit เมื่อวันที่ 2015-02-08 20:09:27
รายละเอียดของการตอบ ::

อ่านที่ No.3 ถามไปยังครับ
ทางที่ดีง่ายสุด คือ เปลี่ยน data type เป็น nvarchar() varchar() ประมาณนี้แล้วเก็บในรูป path

ตอนเรียกใช้ก็
pictureBox1.Image = Image.FromFile(........);

แค่นั้นครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-02-09 09:23:28 By : lamaka.tor
 


 

No. 9



โพสกระทู้ ( 33 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 8 เขียนโดย : lamaka.tor เมื่อวันที่ 2015-02-09 09:23:28
รายละเอียดของการตอบ ::
อ่อ...แห่ะ ๆ ทำได้แล้วครับพี่ ขอบคุณครับ


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-02-10 07:56:15 By : visvisit
 


 

No. 10



โพสกระทู้ ( 4,440 )
บทความ ( 23 )



สถานะออฟไลน์
Facebook


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-02-10 08:38:04 By : lamaka.tor
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : สอบถามปัญหาการ Binding รูปภาพออกมาแสดงใน picturebox (การเก็บ data type ชื่อรูปในฐานข้อมูล,และ Folder ที่เก็บรูปในโปรเจค)
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 03
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่