none
COMO GUARDAR RUTA DE UN ARCHIVO EN SQL SERVER RRS feed

  • Pregunta

  • Buenas a todos,

    Tengo el siguiente codigo, que me funciona perfecto al guardar datos y mis archivos pero no se como guardar la ruta de estos archivos en mi base de datos (ocupo sql server), necesito guardarla en un campo que ya tengo en mi tabla, agradecere mucho su ayuda si me pueden orientar de favor.

            If btnGuardar.Text = "Guardar" Then
                Dim cn As New SqlConnection(ConfigurationManager.ConnectionStrings("CedulasVCConnectionString").ConnectionString)
                Dim cmd As New SqlCommand
                Dim dr As SqlDataReader
    
    
                Dim ruta As String = Server.MapPath("Archivos")
                Dim fileok As Boolean = False
                Dim NombreArchivo As String = ""
                Dim NumActua As String = ""
    
                cmd.CommandType = CommandType.StoredProcedure
                cmd.CommandText = "spu_Rp_ActualizaDocumentacion"
                Err.Clear()
    
                Try
    
                    cmd.Connection = cn
                    cmd.Parameters.Clear()
                    cmd.Connection.Open()
    
                    cmd.Parameters.Add("@IDPadronRenta", SqlDbType.Int).Value = lblIDPadron.Text
                    cmd.Parameters.Add("@NombreCompleto", SqlDbType.VarChar).Value = lblNomCompleto.Text
                    cmd.Parameters.Add("@Direccion", SqlDbType.VarChar).Value = txtDireccion.Text
                    cmd.Parameters.Add("@IdColonia", SqlDbType.Int).Value = lblIDColonia.Text
                    cmd.Parameters.Add("@Colonia", SqlDbType.VarChar).Value = lblColonia.Text
                    cmd.Parameters.Add("@DelegacionAc", SqlDbType.VarChar).Value = lblDelegacion.Text
                    cmd.Parameters.Add("@CodigoPostal", SqlDbType.Int).Value = lblCP.Text
                    cmd.Parameters.Add("@Correo", SqlDbType.VarChar).Value = txtCorreo.Text
                    cmd.Parameters.Add("@TelefonoLocal", SqlDbType.VarChar).Value = txtTelefonoLocal.Text
                    cmd.Parameters.Add("@Celular", SqlDbType.VarChar).Value = txtTelefonoCelular.Text
                    cmd.Parameters.Add("@TipoComprobanteDomicilio", SqlDbType.VarChar).Value = ddlComprobante.Text
                    cmd.Parameters.Add("@TipoIdentificacion", SqlDbType.VarChar).Value = ddlIdentificacion.Text
                    cmd.Parameters.Add("@NoActualizacion", SqlDbType.TinyInt).Value = ddlFechaActualiza.Text
                    cmd.Parameters.Add("@Validado", SqlDbType.Bit).Value = chkValida.Checked
                    cmd.Parameters.Add("@Observaciones", SqlDbType.VarChar).Value = txtObservaciones.Text
                    cmd.Parameters.Add("@Año", SqlDbType.Int).Value = ddlAño.Text
                    cmd.Parameters.Add("@FechaVigencia", SqlDbType.Date).Value = txtFechaVigencia.Text
                    cmd.Parameters.Add("@Identificacion", SqlDbType.VarChar).Value = FileUploadIdentificacion.HasFile
                    cmd.Parameters.Add("@Comprobante", SqlDbType.VarChar).Value = FileUploadComprobante.HasFile
    
    
    
    
                    If FileUploadComprobante.HasFile And FileUploadIdentificacion.HasFile Then
    
                        Dim fileExtension As String
                        fileExtension = System.IO.Path.GetExtension(FileUploadComprobante.FileName).ToLower
    
                        Dim fileExtension2 As String
                        fileExtension2 = System.IO.Path.GetExtension(FileUploadIdentificacion.FileName).ToLower
    
                        Dim allowedExtensions As String() = {".pdf", ".gif", ".jpg", ".png"}
                        For i As Integer = 0 To allowedExtensions.Length - 1
                            If fileExtension = allowedExtensions(i) And fileExtension2 = allowedExtensions(i) Then
    
                                fileok = True
    
                            End If
                        Next
    
                        If fileok And (FileUploadComprobante.PostedFile.ContentLength / 1024) And (FileUploadIdentificacion.PostedFile.ContentLength / 1024) < 2048 Then
                            dr = cmd.ExecuteReader()
                            dr.Read()
    
                            If dr.HasRows Then
    
                                'NombreArchivo = dr.Item("ID")
                                ID = dr.Item("ID")
                                NombreArchivo = String.Format("{0:yyyyMM}", DateTime.Now)
                                FileUploadComprobante.PostedFile.SaveAs(ruta + "/comprobante_" + NombreArchivo.ToString + "_" + ID + fileExtension) ' se guarda el comprobante de domicilio
                                FileUploadIdentificacion.PostedFile.SaveAs(ruta + "/identificacion_" + NombreArchivo.ToString + "_" + ID + fileExtension2) ' se guarda la identificación
                                lblMensaje.Text = "Guardado correctamente"
                                btnGuardar.Text = "Continuar >>"
                                btnGuardar.CausesValidation = False
                            Else
                                lblMensaje.Text = "Ya existe registro de actualización para el beneficiario"
                                btnGuardar.Text = "Continuar >>"
                                btnGuardar.CausesValidation = False
                            End If
    
                        Else
                            lblMensaje.Text = "El archivo debe ser tipo PDF o imagen y su tamaño menor a 2Mb"
                        End If
                    Else
                        lblMensaje.Text = "Es necesario seleccionar los archivos"
                    End If
    
                Catch ex As Exception
                    lblMensaje.Text = "Ha ocurrido un error: {" + Err.Description + "}"
                Finally
                    cn.Close()
                    cmd.Dispose()
                End Try
    
            ElseIf btnGuardar.Text = "Continuar >>" Then
                Response.Redirect("ActualizacionesDomicilio.aspx?IDPR=" + lblIDPadron.Text.ToString + "&Nom=" + lblNomCompleto.Text)
            End If


    gaby

    jueves, 20 de junio de 2019 19:05

Todas las respuestas

  • Hola,

    El Largo máximo de una ruta de archivo en Windows es de 260 caracteres (Verificar)

    Yo veo que tendria 2 alternativas

    1 Crear en la tabla una columna Varchr o nVarchar de 260 caracteres y pasar el parámetro para grabar

    2 Usar una varBinary (Blob) que tiene una capacidad enorme y que crece o decrece en función del dato grabado.

    yo tengo muchos documento Word, Excel, etc grabados de este modo

             Param          Tipo de Dato                          Esto es un Array de Bytes

    .Add("@DocBlob", SqlDbType.VarBinary).Value = Blob


    Atentamente [Best Regards] [Amicalement] Ivan Pequeño Andrade

    jueves, 20 de junio de 2019 20:50
  • Gracias por responder, espero no molestar, (soy muy novata todavia)  lo que no se de plano es como decirle a mi procedimiento "guardame esto", mi ruta que hice fue esta : 
     FileUploadComprobante.PostedFile.SaveAs(ruta + "/comprobante_" + NombreArchivo.ToString + "_" + ID + fileExtension) ' se guarda el comprobante de domicilio
    pero como le hago para decirle que es esa ? segun yo deberia poder ponerle algo asi como :

    ruta = 

    (ruta + "/comprobante_" + NombreArchivo.ToString + "_" + ID + fileExtension) ' se guarda el comprobante de domicilio


    de plano no se como hacerle. 

    gaby


    jueves, 20 de junio de 2019 21:57
  • Hola,

    Tengo una Clase en Visual Basic que hace lo que Ud necesita.

    ¿Puede esperar  a mañana a que se la envíe?

    Hoy desgaciadamente no tendré tiempo.

    Respóndame y se la envío mañana

    Saludos


    Atentamente [Best Regards] [Amicalement] Ivan Pequeño Andrade

    viernes, 21 de junio de 2019 14:21
  • Claro, muchisimas gracias.

    gaby

    viernes, 21 de junio de 2019 14:54
  • Ya, mañana tipo 10 AM (mi hora local GMT +4)

    se la enviaré y estaré atento a sus dudas si es necesario

    Chao y saludos


    Atentamente [Best Regards] [Amicalement] Ivan Pequeño Andrade

    viernes, 21 de junio de 2019 15:28
  • Hola,

    Disculpe la Tardanza.

    ¿Podria contactarme a ivan.pequeno.a@gmail.com?

    Tendría que enviarle un archivo,Rar

    Y aqui en el foro no sé como hacerlo

    Saludos y Gracias de ante mano


    Atentamente [Best Regards] [Amicalement] Ivan Pequeño Andrade

    sábado, 22 de junio de 2019 22:37
  • Hola, claro, ahora mismo le envió correo, gracias!

    gaby

    lunes, 24 de junio de 2019 14:46