正在构建一个简单的程序,帮助人们浏览图像并将其保存在mysql数据库中。在vb.net中保存图片时遇到大麻烦,非常感谢您的帮助...
Imports System.IO
Public Class frmSalesManager
Private Sub frmSalesManager_Load(sender As Object, e As EventArgs) Handles MyBase.Load
End Sub
Private Sub btnBrowse_Click(sender As Object, e As EventArgs) Handles btnBrowse.Click
OpenFileDialog1.Filter = "image file (*.jpg, *.bmp, *.png) | *.jpg; *.bmp; *.png| all files (*.*) | *.* "
If OpenFileDialog1.ShowDialog <> Windows.Forms.DialogResult.Cancel Then
PictureBox1.Image = Image.FromFile(OpenFileDialog1.FileName)
End If
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim fsreader As New FileStream(OpenFileDialog1.FileName, FileMode.Open, FileAccess.Read)
Dim breader As New BinaryReader(fsreader)
Dim imgbuffer(fsreader.Length) As Byte
breader.Read(imgbuffer, 0, fsreader.Length)
fsreader.Close()
strsql = "Insert into Test (name, picture) VALUES (@name, @picture)"
acsmd.CommandText = strsql
acsmd.Connection = con
acsmd.Parameters.AddWithValue("@name", txtname.Text)
acsmd.Parameters.AddWithValue("@picture", imgbuffer)
'acsmd.ExecuteNonQuery()
acsmd.Dispose()
MsgBox("Saved")
End Sub
Private Sub OpenFileDialog1_FileOk(sender As Object, e As System.ComponentModel.CancelEventArgs) Handles OpenFileDialog1.FileOk
If OpenFileDialog1.FileName <> Nothing Or OpenFileDialog1.FileName <> "" Then
txtname.Text = OpenFileDialog1.FileName.Substring( _
OpenFileDialog1.FileName.LastIndexOf("\") + 1, _
(OpenFileDialog1.FileName.IndexOf(".", 0) - (OpenFileDialog1.FileName.LastIndexOf("\") + 1)))
End If
End Sub
End Class
答案 0 :(得分:0)
我希望con是一个Open连接...尝试使用Button1_Click
的代码Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim imgbuffer() As Byte
Using fsreader As New FileStream(OpenFileDialog1.FileName, FileMode.Open, FileAccess.Read)
ReDim imgbuffer(fsreader.Length - 1)
Using breader As New BinaryReader(fsreader)
breader.Read(imgbuffer, 0, fsreader.Length)
End Using
End Using
strsql = "Insert into Test (name, picture) VALUES (@name, @picture)"
acsmd.CommandText = strsql
acsmd.Connection = con
acsmd.Parameters.AddWithValue("@name", txtname.Text)
acsmd.Parameters.AddWithValue("@picture", imgbuffer)
acsmd.ExecuteNonQuery()
acsmd.Dispose()
MsgBox("Saved")
End Sub
答案 1 :(得分:0)