将图像从PictureBox保存到数据库

时间:2014-10-09 08:14:27

标签: vb.net visual-studio-2013

我想知道如何使用浏览文件对话框在Visual Basic中保存我从计算机中选择的图片。

我使用以下代码从我的电脑中选择图像:

Private Sub btnBuscar_Click(sender As Object, e As EventArgs) Handles btnBuscar.Click

With OpenFileDialog1
    .CheckFileExists = True
    .ShowReadOnly = False
    .Filter = "All Files |*.*| Bitmap Files (*)|*.bmp;*.gif;*.jpg"
    .FilterIndex = 2

    If .ShowDialog = DialogResult.OK Then

        PictureBox1.Image = Image.FromFile(.FileName)

    End If

  End With

End Sub

从我的表单中,我正在调用另一个类来创建对象:

gestor.agregarMission(txtNombre.Text, txtTrip.Text, dtInicio.Value, numDuracionDia.Text, programa, txtDatos.Text, txtResul.Text, picture, txtNave.Text, cuerpo)

我需要用一些参数构建一个对象Mission,包括一个Image,这是构造函数:

Public Sub agregarMission(pnombre As String, ptripulantes As String, pfechaLanz As Date, pduracion As Double, pprograma As String, pdescripcion As String, presultado As String, **pinsignia As Image**, pnave As String, pcuerpo As String)

Dim objMision As New Mision(pnombre, ptripulantes, pfechaLanz, pduracion, pprograma, pdescripcion, presultado, pinsignia, pnave, pcuerpo)
multiMision.registrarMission(objMision)

End Sub

我看不到的是pictureBox.Image或wahetever的等价物,所以我可以将它发送给构造函数。

在我的SQL表中,字段类型是Image,我被告知Image类型实际上是一个数组,所以我不知道以后是否可以将它转换为String并稍后将其恢复为原始类型。

如果有人能给我一个提示,我将非常感激!

1 个答案:

答案 0 :(得分:1)

如果将图像文件名作为字符串传递到agregarMission,则可以使用它来读取图像,将其转换为字节并插入。除非您将其用于其他目的,否则不需要PictureBox。

Dim fiImage As FileInfo = New FileInfo(imageFilename)
Dim fs As FileStream = New FileStream(imageFilename, FileMode.Open, FileAccess.Read, FileShare.Read)
Dim imgByteArray = New Byte((Convert.ToInt32(fiImage.Length)) - 1) {}
fs.Read(imgByteArray, 0, Convert.ToInt32(fiImage.Length))
fs.Close

imgByteArray插入表格字段