Sunteți pe pagina 1din 3

Guardar Foto en una Base de Datos SQL SERVER 2000 o 2005 , utilizando .

NET 2005 - PARTE 1


Hola en esta oportunidad presentare un articulo que permitira a los desarrolladores guargar y cargar una imagen utilizando Visual Studio 2005 con el Lenguaje .net y una Base de datos SQL SERVER en las Versiones 2000 y 2005 Para guardar una foto se puede hacer de 3 Formas 1 Es guardando la Foto en la Misma Base de Datos que esta ( Solo para imagenes de Formato BMP )

Este es el Formularios en que se va a trabajar . En el formulario hay una varible que se llama "curFileName " de un tipo String que va debajo del "PUBLIC CLASS" del Formulario. Que se pone asi Public curFileName As String = "" . Y luego en la parte Genera importamos unas clases que nos permitira utilzar el codigo que son Imports System.IO Imports System.Text -Hay un boton que dice Cargar en ese Boton va el Siguiente Codigo Dim openDlg As OpenFileDialog = New OpenFileDialog() openDlg.Filter = "Todos los Archivos bmp *.bmp" Dim filter As String = openDlg.Filter openDlg.Title = "Abrir los Archivos Bmp" If (openDlg.ShowDialog() = Windows.Forms.DialogResult.OK) Then picFoto.ImageLocation = openDlg.FileName curFileName = openDlg.FileName Else Exit Sub End If -luego en el Boton Grabar Ingresamos el codigo para que pueda guardar los datos y la foto a la Base de Datos SQL SERVER Dim fsFoto As FileStream fsFoto = New FileStream(curFileName, FileMode.Open) Dim fiFoto As FileInfo = New FileInfo(curFileName) Dim Temp As Long = fiFoto.Length Dim lung As Long = Convert.ToInt32(Temp) Dim picture(lung) As Byte fsFoto.Read(picture, 0, lung)

fsFoto.Close() Dim comando As New SqlClient.SqlCommand Dim parametro As New SqlClient.SqlParameter comando.Connection = MDISistema.cnn comando.CommandType = CommandType.StoredProcedure comando.CommandText = "guardarpersonal" parametro = comando.Parameters.Add("@Codigo", SqlDbType.Char, 10) parametro.Value = Me.txtcodigo.Text.Trim parametro = comando.Parameters.Add("@Apellido", SqlDbType.VarChar, 50) parametro.Value = Me.txtapellido.Text.Trim parametro = comando.Parameters.Add("@Nombre", SqlDbType.VarChar, 50) parametro.Value = Me.txtnombre.Text.Trim parametro = comando.Parameters.Add("@Direccion", SqlDbType.VarChar, 50) parametro.Value = Me.txtdireccion.Text.Trim parametro = comando.Parameters.Add("@Telefono", SqlDbType.Char, 10) parametro.Value = Me.txttelefono.Text.Trim parametro = comando.Parameters.Add("@Foto", SqlDbType.Image) parametro.Value = picture parametro = comando.Parameters.Add("@Codtipo", SqlDbType.Char, 10) parametro.Value = Me.cbotipo.SelectedValue comando.ExecuteNonQuery() bueno en las primeras lineas de codigo son las que permiten que la foto se conbierta en Byte para luego en Byte Guardar la Imagen en la Base de Datos y el resultado de la conversion lo guarda el la varible que se llama " picture " que le mando a la Base de Datos ra que Guarde Bueno en el siguiente codigo nos permite buscar la imagen en la Base de Datos SQL SERVER y luego mostrarlo en el control PictureBox y es el Siguiente

Public Sub CargarImagen(ByVal codigo As String) Try ''Cargar(Fotografia) Dim daFoto As New SqlClient.SqlDataAdapter("exec buscarfoto '" & codigo & "'", MDISistema.cnn) Dim dsFoto As New DataSet() daFoto.Fill(dsFoto) Dim bits As Byte() = CType(dsFoto.Tables(0).Rows(0).Item(0), Byte()) Dim memorybits As New MemoryStream(bits) Dim bitmap As New Bitmap(memorybits) picFoto.Image = bitmap dsFoto.Dispose() daFoto.Dispose() Catch EX As Exception MessageBox.Show(EX.Message) ', "No se puede mostrar fotografia", MessageBoxButtons.OK, MessageBoxIcon.Information) picFoto.Image = Nothing picFoto.Refresh() End Try End Sub En el SqlClient.SqlDataAdapter pongo mi Store Procedure y el parametro lo mando en el codigo y listo me carga la foto en el PictureBox la Foto guardada en la Base de Datos :D Saludos........ Victor Altamirano V.

S-ar putea să vă placă și