2017-04-25 66 views
-1

當我更新表單時,只有當我不更新(更改)圖像時纔會出現此錯誤。
當我用新圖片更新時,我沒有這個錯誤。GDI +在更新時發生了一般性錯誤

Try 
    Dim mstream As New System.IO.MemoryStream() 
    PictureBox1.Image = New Bitmap(Image.FromStream(mstream)) 
    Dim arrImage() As Byte = mstream.GetBuffer() 
    mstream.Close() 

    MysqlConn.Close() 
    MysqlConn.Open() 
    COMMAND.Connection = MysqlConn 
    COMMAND.CommandText = "update product set 
     [email protected], 
     [email protected] 
     where id = '" & TextBox1.Text & "'" 
    COMMAND.Parameters.AddWithValue("@Value1", If(String.IsNullOrEmpty(ComboBox1.Text), DBNull.Value, ComboBox1.Text)) 

    COMMAND.Parameters.AddWithValue("@foto", arrImage) 
    READER = COMMAND.ExecuteReader 
    MessageBox.Show("Datos Guardados") 
    MysqlConn.Close() 
Catch ex As Exception 
    MessageBox.Show(ex.Message) 
Finally 
    MysqlConn.Dispose() 
End Try 
MysqlConn.Close() 
+3

我不明白你的代碼是如何工作的。在第一行中,您正在初始化一個未提供任何參數的新MemoryStream,然後立即嘗試從中獲取圖像?也請確定導致異常的確切代碼行,並請發佈完整的異常詳情。 – DeanOC

+0

你是什麼意思'當我不更新(改變)圖像'你的代碼顯示圖像數據被傳遞,不管是什麼。除了上面的代碼外,還有很多錯誤:a)不使用'GetBuffer()',使用'ToArray' - 考慮不保存圖像,而是保存到某個歸檔位置的文件的名稱; b)不要使用'AddWithValue()'使用'Add(string,dbType).Value = ...'形式c)總是使用SQL參數,包括WHERE子句目標d)ExecuteNonQuery比DataReader更好 – Plutonix

+0

@DeanOC不幸的是有了這個錯誤,'一個通用的錯誤... * * *是細節。 – Plutonix

回答

-2

我試試這個和工作。

Dim mstream As New System.IO.MemoryStream() 
       'PictureBox1.Image = New Bitmap(Image.FromStream(mstream)) 
       PictureBox1.Image.Save(mstream, System.Drawing.Imaging.ImageFormat.Jpeg) 
       Dim arrImage() As Byte = mstream.GetBuffer() 
+1

不使用'GetBuffer()',使用'ToArray()'的缺點在MSDN上清楚地概述... [和這裏](http://stackoverflow.com/a/31370711) – Plutonix

相關問題