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 > สวัสดีครับ ผมมีปัญหา เรื่อง การบันทึกรูปภาพที่เป็น binary เเล้วก็ดึงมาใช้ ครับ ขอตัวอย่างโค๊ดได้มั้ยครับ



 

สวัสดีครับ ผมมีปัญหา เรื่อง การบันทึกรูปภาพที่เป็น binary เเล้วก็ดึงมาใช้ ครับ ขอตัวอย่างโค๊ดได้มั้ยครับ

 



Topic : 080892



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



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



สวัสดีครับ ผมมีปัญหา เรื่อง การบันทึกรูปภาพที่เป็น binary เเล้วก็ดึงมาใช้ ครับ ขอตัวอย่างโค๊ดได้มั้ยครับ

Code
Unable to cast object of type 'System.String' to type 'System.Byte[]'. Exception


11




Code (VB.NET)
 Dim ofDlg As New OpenFileDialog()
        'Reading a picture from disk and put it in a bytearray
        Using fo As New OpenFileDialog With
        {.Filter = "JpG (*.jpg)|*.jpg|Gif (*.gif)|*.gif|All files (*.*)|*.*"}
            If fo.ShowDialog = DialogResult.OK Then
                tmpFileName = fo.FileName

                Me.Label35.Text = tmpFileName
                Dim fs As New IO.FileStream(fo.FileName, _
                IO.FileMode.Open)
                Dim br As New IO.BinaryReader(fs)
                Dim byteArray = br.ReadBytes(CInt(fs.Length))
                br.Close()

                Dim ms As New IO.MemoryStream(byteArray)
                Me.PictureBox1.Image = Image.FromStream(ms)
            End If

        End Using






Code (VB.NET)
 Private Sub ShowImage()

        Dim sqlImage As String
        sqlImage = "SELECT PICTURE  FROM land"
        sqlImage &= "  WHERE LANDID ='1'"

        With Conn
            If .State = ConnectionState.Open Then .Close()
            .ConnectionString = strConnstring
            .Open()
        End With

        da = New SqlDataAdapter(sqlImage, Conn)
        da.Fill(ds, "land")
        da.SelectCommand.CommandText = sqlImage
        da.Fill(ds, "land")

        If ds.Tables("land").Rows.Count <> 0 Then
            IsFindImage = True
            CurrentImage = CType(ds.Tables("land").Rows(0).Item("PICTURE"), Byte())
            Dim ms As New MemoryStream(CurrentImage, True)
            PictureBox1.Image = Image.FromStream(ms)
        Else
            IsFindImage = False
        End If
    End Sub
 





Tag : .NET, Ms SQL Server 2008, Win (Windows App), VB.NET, VS 2012 (.NET 4.x)







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2012-07-11 12:01:44 By : pisansri View : 2138 Reply : 9
 

 

No. 1

Guest


อิอิ vb เจอเรื่อง type ตายเรียบเกือบทุกคนเลย

https://www.thaicreate.com/dotnet/forum/043583.html






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-07-11 14:50:58 By : อิอิ
 


 

No. 2



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

สมาชิกที่ใส่เสื้อไทยครีเอท

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

Code (VB.NET)
ds.Table("land").Rows(0)("Picture")


แค่นี้น่าจะพอน่ะครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-07-11 21:13:18 By : mr.win
 

 

No. 3



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



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

ยังเหมือนเดิมเลยครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-07-11 23:43:28 By : pisansri
 


 

No. 4



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

สมาชิกที่ใส่เสื้อไทยครีเอท

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

ว่าแต่ข้อมูลมันเป็น Bytes หรือ Binary หรือเปล่าครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-07-12 06:08:27 By : mr.win
 


 

No. 5



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



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

เเบบนี้เค้าเรียกว่าอะไรครับ D:\sspetax\pictureland\15E003.jpg ไม่รู้จริงๆ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-07-12 11:37:13 By : pisansri
 


 

No. 6

Guest


เเบบนี้เค้าเรียกว่าอะไรครับ D:\sspetax\pictureland\15E003.jpg ไม่รู้จริงๆ = Path ครับผม
คงไม่จบถ้าไม่สานต่อ 555+++

Code (VB.NET)
Private tmpFileName As String
    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
        'Reading a picture from disk and put it in a bytearray
        Using fo As New OpenFileDialog With
            {.Filter = "JpG (*.jpg)|*.jpg|Gif (*.gif)|*.gif|All files (*.*)|*.*"}
            If fo.ShowDialog = DialogResult.OK Then
                tmpFileName = fo.FileName
                Call LoadImage(tmpFileName)
            End If
        End Using
    End Sub
    Private Sub LoadImage(ByRef picturePath As String)
        Me.Label2.Text = tmpFileName
        Dim fs As New IO.FileStream(picturePath, _
       IO.FileMode.Open)
        Dim br As New IO.BinaryReader(fs)
        Dim byteArray = br.ReadBytes(CInt(fs.Length))
        br.Close()
        'just to show the sample without a fileread error
        Dim ms As New IO.MemoryStream(byteArray)
        Me.PictureBox1.Image = Image.FromStream(ms)
    End Sub
    Private Sub ShowImage()
        Dim sqlImage As String
        sqlImage = "SELECT PICTURE  FROM land"
        sqlImage &= "  WHERE LANDID ='1'"



        With Conn

            If .State = ConnectionState.Open Then .Close()

            .ConnectionString = strConnstring

            .Open()

        End With



        da = New SqlDataAdapter(sqlImage, Conn)

        da.Fill(ds, "land")

        da.SelectCommand.CommandText = sqlImage

        da.Fill(ds, "land")



        If ds.Tables("land").Rows.Count <> 0 Then

            IsFindImage = True

           
            Call LoadImage(ds.Tables("land").Rows(0).Item("PICTURE"))
        Else

            IsFindImage = False

        End If

    End Sub

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-07-12 12:35:32 By : ch_b
 


 

No. 7



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



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

ได้เเล้วครับปัญหาอยู่ที่การบันทึก เเก้ได้ซักที่ ครับ ขอบคุณมากครับ

Code (VB.NET)
 Dim strSQL As String
        Dim cmd As SqlCommand
        Dim lngRows As Integer
        Dim photo As Byte()

        Dim strConnstring As String = "Data Source=.\SQLSERVER;Initial Catalog=GIS;Integrated Security=True;User ID=sa;Pwd=sspe"
        Dim cn As New SqlConnection(strConnstring)
        photo = GetPhoto(tmpFileName) ' ---- อ่านไฟล์ภาพเข้าตัวแปร Byte array

        ' TextBox1.Text = tmpFileName
        ' ---- เทคนิคการนำข้อมูล binary (byte array) เข้าฐานข้อมูล ให้ใช้พารามิเตอร์นะครับ
        TextBox1.Text = tmpFileName

        strSQL = "INSERT INTO land (PICTURE,PICTURENAME) "
        strSQL &= " VALUES ('" & tmpFileName & "',"
        strSQL &= "@photo)"
        cmd = New SqlCommand(strSQL, cn) ' ---- ตัวแปร cn นี่ผมลากใส่ฟอร์มกำหนด Connection String จาก wizard นะ
        ' ---- ดูวิธีการส่งค่าให้กับพารามิเตอร์ดีๆ Path.GetFileName เป็นวิธีการเอามาแต่ชื่อไฟล์ จากพาธยาวๆ

        cmd.Parameters.Add("@filename", SqlDbType.NVarChar, 500).Value = Path.GetFileName(tmpFileName)

        cmd.Parameters.Add("@photo", SqlDbType.Image, photo.Length).Value = photo

        If (cn.State = ConnectionState.Closed) Then cn.Open()

        lngRows = cmd.ExecuteNonQuery() ' ---- ยิง SQL ไป execute.
        MsgBox(lngRows & "บันทึกเรียบร้อย")
        cn.Close()

        PictureBox1.Image = Nothing ' ---- ลบภาพพรีวิวออก.
    End Sub

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-07-12 16:11:33 By : pisansri
 


 

No. 8



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

สมาชิกที่ใส่เสื้อไทยครีเอท

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

อืมตามนั้นครับ มันเป็นแค่ Path จะต้องแปลงให้เป็น Byte , Binary ก่อนครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-07-12 16:14:31 By : mr.win
 


 

No. 9



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



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

ขอถามอีกนิดนึงครับ เหลือ update ครับรูปยังไม่ขึ้นเลยครับ


Code (VB.NET)
        Dim cmd As SqlCommand
        Dim lngRows As Integer
        Dim photo As Byte()
        Dim strConnstring As String = "Data Source=.\SQLSERVER;Initial Catalog=GIS;Integrated Security=True;User ID=sa;Pwd=sspe"
        Dim cn As New SqlConnection(strConnstring)
        photo = GetPhoto(tmpFileName) ' ---- อ่านไฟล์ภาพเข้าตัวแปร Byte array

        Dim sqlupdate As String

        sqlupdate = "update land "

        sqlupdate &= " set  PICTURENAME= '" & "@photo" & "',"
        sqlupdate &= " PICTURE= '" & tmpFileName & "'"

        sqlupdate &= " where LANDID = '" & txtLANDID.Text & "'"

        cmd = New SqlCommand(sqlupdate, cn) ' ---- ตัวแปร cn นี่ผมลากใส่ฟอร์มกำหนด Connection String จาก wizard นะ
        ' ---- ดูวิธีการส่งค่าให้กับพารามิเตอร์ดีๆ Path.GetFileName เป็นวิธีการเอามาแต่ชื่อไฟล์ จากพาธยาวๆ

        ' cmd.Parameters.Add("@filename", SqlDbType.NVarChar, 500).Value = Path.GetFileName(tmpFileName)
        cmd.Parameters.Add("@photo", SqlDbType.Image, photo.Length).Value = photo


        If (cn.State = ConnectionState.Closed) Then cn.Open()
        lngRows = cmd.ExecuteNonQuery() ' ---- ยิง SQL ไป execute.
        MsgBox(lngRows & "บันทึกเรียบร้อย")
        cn.Close()


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-07-12 18:26:10 By : pisansri
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : สวัสดีครับ ผมมีปัญหา เรื่อง การบันทึกรูปภาพที่เป็น binary เเล้วก็ดึงมาใช้ ครับ ขอตัวอย่างโค๊ดได้มั้ยครับ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ 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 04
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 อัตราราคา คลิกที่นี่