Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: MANULOMM en 24 Diciembre 2007, 17:35 pm



Título: varbinary... ayuda!!!
Publicado por: MANULOMM en 24 Diciembre 2007, 17:35 pm
hola estoy haciendo un app en c# con sql server 2005 y necesito implementar campos de tipo varbinary alguien sabe como los debo de implementar.

Atentamente,

Juan Manuel Lombana
Medellėn - Colombia


Título: Re: varbinary... ayuda!!!
Publicado por: MANULOMM en 26 Diciembre 2007, 16:14 pm
Listo!!! despues de mucho intentar y buscar en internet lo he hecho... para este caso lo hice con un SQL Server 2005 Compact Edition...
El Code es Asi:

Conversion del archivo a binario.
se obtiene la ruta del archivo a guardar en la bd, se convierte a binario (guardandolo en un array de bytes) y se hace un insert en la base de datos en la cual uno de los campos de la tabla sea un varbinary, a este se le asigana el array de bytes
Código:
            string RutaArchivo = "RUTA DEL ARCHIVO";
            FileStream Ruta = new FileStream(RutaArchivo,FileMode.Open,FileAccess.Read);
            byte[] binario = new byte[Ruta.Length];
            Ruta.Read(binario, 0, Convert.ToInt32(Ruta.Length));
            Ruta.Close();
            //aqui abajo hacemos el insert normalmente... pasando como parametro para el varbinary la variable binario

Conversion del Binario a Archivo
Aqui se obtiene de la bd con una consulta el campo varbinary (para mi caso la tabla se llama Archivos y el campo varbinary se llama archivo), hacemos la consulta y obetenemos varbinary este lo hacemos igual a un array de bytes asi.
Código:
            byte[] bin = _MyDatabase_1DataSet1.Archivos[0].Archivo;// aqui hago igual el varbinary obtenido en una consulta (hecha anteriormente) y lo igual a un array de bytes
            FileStream Ruta = new FileStream(textBox1.Text,FileMode.Create,FileAccess.Write);
            Ruta.Write(bin, 0, Convert.ToInt32(bin.Length));
            Ruta.Close();
y listo, si no entienden algo solo me lo dicen....

NOTA:
el campo varbinary tiene una restriccion de 8000 bytes, quien necesite mas debe de hacerlo con SQL Server y con VarBinary(MAX).
Atentamente,


Juan Manuel Lombana
Medellėn - Colombia