ID | Asunto | Fecha | Nick | |
58133 | Añadir archivo a BBDD | 27/01/17 08:51 | pitus | | |
Buenos dias, lo que tengo entre manos es agregar un archivo pdf a una base de datos. Exto lo hogo con dos botones un boton para buscar el archico y otro para colocarlo en la base de datos. El boton de examinar me funciona correctamente pero el boton de upload me sale un error diciendo que "La conversión de la cadena en el tipo Integer no es válida"
Pego mi código:
Private Sub Button6
_Click(sender As Object, e As EventArgs)
Handles Button6.Click
Try
' Leer el archivo binario especificado en el control TextBox.
Dim conexion As SqlConnection
Dim arx As Byte() = ReadBinaryFile(TextBox4.Text)
' Establecemos una conexión para conectarnos a la base
de datos de SQL Server, utilizando la seguridad integrada de Windows NT.
conexion = New SqlConnection()
conexion.ConnectionString = "Data
Source=Josep-Pc\sqlexpress;Initial Catalog=Desplacaments;Integrated
Security=SSPI;"
conexion.Open()
Dim cmd As SqlCommand = conexion.CreateCommand()
' Crear la consulta T-SQL para insertar un nuevo registro.
cmd.CommandText = "INSERT INTO DietesConcepte (arxiu) VALUES (@arx);"
' La función ReadBinaryFile tal cual se encuentra
implementada no devolverá un valor Nothing, pero muestro
'cómo especificar un valor NULL al parámetro de entrada
si el valor del campo binario fuese Nothing.
'Para insertar un valor NULL, el campo de la tabla lo tiene que permitir.
cmd.Parameters.AddWithValue("@arx", If(arx IsNot Nothing, arx, CObj(DBNull.Value)))
Dim n As Integer = cmd.ExecuteNonQuery()
If (n > 0) Then
MessageBox.Show("Document pujat correctament.")
Else
MessageBox.Show("No hem pogut pujar el document.")
End If
Catch ex As Exception
'Error
MessageBox.Show(ex.Message)
End Try
End Sub |
|
ID | Asunto | Fecha | Nick | |
58134 | Re: Añadir archivo a BBDD (Resp: 58133) | 27/01/17 13:02 | pitus | | |
Ya salucione el problema. Escribo la solución por si alguien se encuentra en el mismo problema. La solución consiste en cambiar "Dim arx As Byte() = ReadBinaryFile(TextBox4.Text)" por " Dim arx As Byte() = File.ReadAllBytes(TextBox4.Text)". En otras palabras en lugar de poner ReadBinaryFile poner File.ReadAllBytes.
Si esta respuesta resuelve tu duda, por favor pulsa en la de este mensaje. Gracias. |