ASP.NET - GUARDAR Y ABRIR DOCUMENTOS PDF EN ASP .NET OLEDB

   
Vista:

GUARDAR Y ABRIR DOCUMENTOS PDF EN ASP .NET OLEDB

Publicado por Jesus Ocampo (1 intervención) el 28/10/2010 18:17:53
Salu2 a todos. Primeramente debo decir que el codigo esta basado en el que hizo Manuel Lambis Ortiz en su tema: http://www.lawebdelprogramador.com/news/mostrar_new.php?id=93&texto=Visual+Basic&n1=521123&n2=0&n3=0&n4=0&n5=0&n6=0&n7=0&n8=0&n9=0&n0=0

El codigo esta realizado en VB con coneccion a SQL server 2005 utilizando OLEDB para crear las conecciones.

Tabla en sql:
create table tblDoc
(
autor NVARCHAR(50) NULL,
apell NVARCHAR(50) NULL,
pdf NVARCHAR(50) NULL,
tam NVARCHAR(50) NULL,
archivo IMAGE NULL
)

Procedimiento almacenado de sql:
CREATE procedure [dbo].[doc]
@autor varchar(50),
@apell varchar(50),
@pdf varchar(50),
@tam varchar(50),
@archivo image
AS
INSERT INTO tblDoc VALUES(@autor,@apell,@pdf,@tam,@archivo)

Pagina de Ingreso: Codigo HTML:
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox><br />
<asp:TextBox ID="TextBox2" runat="server"></asp:TextBox><br /><br />

<asp:FileUpload ID="FileUpload1" runat="server" />
<asp:Button ID="Button1" runat="server" Text="Button" />

<br /><br />
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>

Pagina de Ingreso: Codigo VB:
'Importamos las librerias a utilizar
Imports System.IO
Imports System.Data

Partial Class IngresaPDF
Inherits System.Web.UI.Page

'Declaración de variables
Dim tam As Integer
Dim nom As String
Dim sql As String
Dim ruta As String
Dim arreglo() As Char
Dim archivo As FileStream

Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
sp_FormaModificada()
End Sub

Private Sub sp_FormaModificada()
If (FileUpload1.HasFile) Then
Dim dbcon As New System.Data.OleDb.OleDbConnection("Provider=SQLNCLI;Server=SERVIDOR;Database=BASE DE DATOS;UID=USUARIO;PWD=CONTRASEÑA")
Try
nom = FileUpload1.FileName 'NOMBRE DEL ARCHIV0
tam = FileUpload1.FileBytes.Length 'TAMAÑO DEL ARCHIVO
ruta = Server.MapPath("pdf\") & nom 'RUTA DONDE SE GUARDARA EL ARCHIVO
FileUpload1.SaveAs(ruta) 'GUARDANDO EL ARCHIVO

'EMPIEZA LECTURA DEL ARCHIVO
archivo = New FileStream(ruta, FileMode.Open, FileAccess.Read)
Dim imagen(tam) As Byte
archivo.Read(imagen, 0, tam)
archivo.Close()

'' '' '' ''
'' '' PROCEDIMIENTO DE GUARDADO EN LA BASE DE DATOS
'' '' '' ''
If dbcon.State = ConnectionState.Closed Then
dbcon.Open()
End If

sql = "doc ?,?,?,?,?"
Dim cmd As New OleDb.OleDbCommand(sql, dbcon)

'parametros procedimiento almacenado
cmd.Parameters.Add("@autor", OleDb.OleDbType.VarChar, 50).Value = Me.TextBox1.Text.Trim
cmd.Parameters.Add("@apell", OleDb.OleDbType.VarChar, 50).Value = Me.TextBox2.Text.Trim
cmd.Parameters.Add("@pdf", OleDb.OleDbType.VarChar, 50).Value = nom
cmd.Parameters.Add("@tam", OleDb.OleDbType.VarChar, 50).Value = tam
cmd.Parameters.Add("@archivo", OleDb.OleDbType.Binary, imagen.Length).Value = imagen
sw = cmd.ExecuteNonQuery

If (sw <> 0) Then
Label1.Text = "Archivo Guardado Satisfactoriamente"
End If

Catch ex As Exception
Label1.Text = "Problemas al Guardar Archivo: " & ex.Message

Finally
If dbcon.State = ConnectionState.Open Then
dbcon.Close()
End If
End Try
End If
End Sub
End Class

Pagina de Visualizacion: Codigo HTML:
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
<asp:Button ID="Button1" runat="server" Text="Button" /></div>
<br /><br />
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>

Pagina de Visualizacion: Codigo VB:
'Importamos las librerias a utilizar
Imports System.IO
Imports System.Data

Partial Class DescargarPDF
Inherits System.Web.UI.Page

Dim sql As String
Dim documento As String

Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
sp_CargaPDF_Modificado()
End Sub

Private Sub sp_CargaPDF_Modificado()
Dim dbcon As New System.Data.OleDb.OleDbConnection("Provider=SQLNCLI;Server=SERVIDOR;Database=BASE DE DATOS;UID=USUARIO;PWD=CONTRASEÑA")
Try
'' '' '' ''
'' '' PROCEDIMIENTO DE GUARDADO EN LA BASE DE DATOS
'' '' '' ''
If dbcon.State = ConnectionState.Closed Then
dbcon.Open()
End If

sql = "SELECT * FROM tblDoc WHERE autor = '" & Me.TextBox1.Text.Trim & "' AND apell = '" & Me.TextBox2.Text.Trim & "'"
Dim cmd As New OleDb.OleDbCommand(sql, dbcon)

Dim imagen As OleDb.OleDbDataReader
imagen = cmd.ExecuteReader
Dim conv As New System.Text.ASCIIEncoding
If (imagen.Read) Then
Response.Buffer = True
Response.ContentType = "application/pdf"
Response.BinaryWrite(imagen("archivo"))
'Deben remplazar el nombre "archivo" por el nombre de la columna en donde
'se almacena el pdf

End If

Catch ex As Exception
Me.Label1.Text = "Ha ocurrido un error: " & ex.Message
End Try
End Sub
End Class

Espero les sea de ayuda. cualquier duda sobre el codigo me escriben a ocampotardencilla@yahoo.com
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:GUARDAR Y ABRIR DOCUMENTOS PDF EN ASP .NET OLE

Publicado por abel (1 intervención) el 14/01/2011 22:33:39
Hola, como puedo hacer para recuperar un archivo de word, de sql y abrirlo con esa aplicacion?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:GUARDAR Y ABRIR DOCUMENTOS PDF EN ASP .NET OLE

Publicado por Jose Luis (1 intervención) el 28/02/2012 17:48:26
Excelente post, me sirvió mucho. Está perfecto. Muchas gracias por poner a disposición de todos tus conocimientos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar