¿Como guardar y abrir archivos en SQL Server con C# .Net?, Entity Framework

En este video te enseñare como guardar archivos de cualquier tipo en una base de datos hecha en Sql Server. Utilizo Entity Framework y Windows Form.

También te enseñare como es posible recuperar los archivos guardados en la base de datos y mostrarlos al usuario utilizando la clase Process sin importar la extensión.

 

Código del ejemplo: Descargar

¿Cómo crear el XML para cfdi 3.3 facturación electrónica? – Limpiando código – SAT #2

Este es el segundo video de cómo crear un xml para la creación del cfdi 3.3 de acuerdo a las especificaciones del SAT:

Clase para crear xml: clic para descargar

Primer video – ¿Cómo convertir archivos XSD a clases de C# .Net?: https://www.youtube.com/watch?v=XlTz0NRQLm4

Catálogos SAT Mysql: https://hdeleon.net/catalogos-para-facturar-3-3-sat-en-mysql/

Catálogos SAT Sql Server: https://hdeleon.net/catalogos-para-facturar-cfdi-3-3-sat-en-sql-server/


Comprobante oComprobante = new Comprobante();
oComprobante.Folio = "666";

ComprobanteEmisor oEmisor = new ComprobanteEmisor();
oEmisor.Rfc = "POWE870601DM7";
oEmisor.Nombre = "Una razón";
oEmisor.RegimenFiscal = c_RegimenFiscal.Item605;

ComprobanteReceptor oReceptor = new ComprobanteReceptor();
 oReceptor.Nombre = "Pepe";
 oReceptor.Rfc = "PEPE080801JH1";

oComprobante.Emisor = oEmisor; oComprobante.Receptor = oReceptor;

//SERIALIZAMOS.-------------------------------------------------
string pathXML = @"C:\miPrimerXML.xml";

XmlSerializer oXmlSerializar = new XmlSerializer(typeof(Comprobante));

string sXml = "";

using (var sww= new StringWriter()) {
       using (XmlWriter writter = XmlWriter.Create(sww)) {

               oXmlSerializar.Serialize(writter,oComprobante);
               sXml = sww.ToString();
       }
}

//guardamos el string en un archivo 

System.IO.File.WriteAllText(pathXML,sXml);

Borrar el cache al subir una imagen y mostrarla en el navegador en MVC .Net #Razor

Cuando hacemos un módulo para actualizar una imagen, ya sea el logotipo o una galería, muchas veces tenemos el problema de que sigue saliendo en el navegador la imagen vieja hasta que borramos el cache del navegador.

Lamentablemente los usuarios no saben que es el cache y esperan ver su imagen nueva, al seguir viendo la imagen vieja, el usuario piensa que no se ha subido con éxito la nueva imagen.

En el caso de Mvc .Net esto re se resuelve con un truco, e igual puede resolverse con su equivalencia en cualquier otro lenguaje de programación.

Para esto vamos a hacer uso de la funcionalidad Random, funcionalidad que existe en todo lenguaje de programación y basta con hacerlo de la siguiente manera, en el caso de MVC .Net lo haremos en razor (en la vista):


@{
    //creamos el objeto random y asignamos a una variable string
    Random r = new Random();
    string a = r.Next().ToString();
}

<img src='http://unsitio.com/unaimagen.jpg?a=@a'>

Al poner una variable con un valor nuevo al final de nuestra url de la imagen, obligamos al navegador a volver a cargarla y no utilizar la que tiene en cache.

Un truco viejo, pero que pocos conocen.

¿Cómo obtener una cadena (string) a partir del contenido de un archivo en C# .Net?

En c# es muy fácil obtener una cadena del contenido de un archivo, esto es algo muy útil ya que podemos almacenar información en texto plano en archivos y esta misma obtenerla en cadenas para darle alguna funcionalidad. Por ejemplo un archivo que contenga el cuerpo de un e-mail en .html y así leerlo como string, manipularlo y después enviarlo.

Anexo una clase que tiene un método estático el cual regresa un string a partir de la ruta de un archivo:


 public class Archivo
    {

        public static string GetStringOfFile(string pathFile)
        {
            try
            {
                var contenido = File.ReadAllText(pathFile);

                return contenido;
            }
            catch (Exception ex)
            {
                return string.Empty;
            }
        }
    }

Y así se utiliza:


string ContenidoArchivo= Archivo.GetStringOfFile("Carpeta/otraCarpeta/AlgunArchivo.html");

Funciona con cualquier extensión: .html, .txt, .xml etc etc.