Saludos esta ves estaba buscando la manera de mostrar imagenes y cargarlas desde sqlserver 2005 con apoyo de .net
he aqui el codigo y funciona.
Bueno y mesclado con lo siguiente de la fuente:
http://jquispe.wordpress.com/2009/10/11/guardar-imagenes-en-sql-server-2005-y-recuperarlas-desde-net/
---------------------------------------------------
---------------------------------------------------
Imports System.IO
Imports System.Text
Imports System.Data.SqlClient
Public Class Form1
Dim OpenFD As New OpenFileDialog
Dim connectionString As String = "Data Source = (local);Initial Catalog = basededatos;User = sa; Password="
Public cn As SqlConnection = New SqlConnection(connectionString)
Public ds As New DataSet
Private Sub BtnInsertar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnInsertar.Click
Try
cn.Open()
Dim arrFilename() As String = Split(Text, "\")
Array.Reverse(arrFilename)
Dim ms As New MemoryStream
PictureBox1.Image.Save(ms, PictureBox1.Image.RawFormat)
Dim arrImage() As Byte = ms.GetBuffer
Dim cmd As New SqlCommand("Insert Into MyTablePreview(Nombre,Descripcion,Imagen)Values(@Nombre,@Descripcion,@Imagen)", cn)
With cmd
.Parameters.Add(New SqlParameter("@Nombre", SqlDbType.NVarChar, 10)).Value = Me.txtNombre.Text
.Parameters.Add(New SqlParameter("@Descripcion", SqlDbType.NText, 10)).Value = Me.txtDescripcion.Text
.Parameters.Add(New SqlParameter("@Imagen", SqlDbType.Image)).Value = arrImage
End With
MessageBox.Show("Registro Insertado Correctamente")
cmd.ExecuteNonQuery()
carga()
Catch sqlExc As SqlException
MessageBox.Show(sqlExc.ToString, "SQL Exception Error!", MessageBoxButtons.OK, MessageBoxIcon.Error)
Catch ex As Exception
MsgBox(ex.Message)
Finally
cn.Close()
End Try
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
carga()
End Sub
Sub carga()
Dim daCategories As New SqlDataAdapter("Select * From MyTablePreview", cn)
ds.Clear()
daCategories.Fill(ds, "MyTablePreview")
Me.DataGridView1.DataSource = ds
Me.DataGridView1.DataMember = "MyTablePreview"
End Sub
Private Sub BtnNuevo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnNuevo.Click
Me.txtNombre.Text = ""
Me.txtDescripcion.Text = ""
'txtnombrecategoria.Focus()
End Sub
Private Sub BtnExaminar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnExaminar.Click
With OpenFD
.InitialDirectory = ""
.Filter = "Todos los Archivos|*.*|JPEGs|*.jpg|GIFs|*.gif|Bitmaps|*.bmp"
.FilterIndex = 2
End With
If OpenFD.ShowDialog() = Windows.Forms.DialogResult.OK Then
With PictureBox1
.Image = Image.FromFile(OpenFD.FileName)
.SizeMode = PictureBoxSizeMode.StretchImage
.BorderStyle = BorderStyle.Fixed3D
Me.BtnInsertar.Enabled = True
End With
End If
End Sub
Function ExtraerImagen(ByVal Foto As Integer) As Byte()
Dim SqlSelect As String = "Select Imagen From MyTablePreview Where Codigo = " & Foto
Dim Command As New SqlCommand(SqlSelect, cn)
cn.Open()
Dim MyPhoto() As Byte = CType(Command.ExecuteScalar(), Byte())
cn.Close()
Return MyPhoto
End Function
Private Sub DataGridView1_CellContentClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellContentClick
Try
TxtCodigo.Text = Convert.ToString(Me.DataGridView1.CurrentRow.Cells(0).Value)
txtNombre.Text = Convert.ToString(Me.DataGridView1.CurrentRow.Cells(1).Value)
txtDescripcion.Text = Convert.ToString(Me.DataGridView1.CurrentRow.Cells(2).Value)
Dim ms As New MemoryStream(ExtraerImagen(CInt(Me.TxtCodigo.Text)))
PictureBox1.Image = Drawing.Image.FromStream(ms)
'PictureBox1.Image = DataGridView1.SelectedCells(3).Value
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
End Class
No hay comentarios:
Publicar un comentario