sábado, 5 de septiembre de 2009

Como jalar los datos al datagrid

Es una prioridad que tiene el datagrid primero tiene que definir que tipo de base de datos y después darle la coerción de la base de datos

En .net tiene dos grids, el datagrid y el datagridview. El segundo es el mas nuevo y es el q le recomienda que se use

La filosofía de varios controles en .net es q ellos se pueden pegar, o hacer un "bind" a una fuente de datos, o datasource. En el caso del datagridview tiene una prop. llamada DataSource ahi se le puede enviar desde un objeto tan sencillo como un arreglo hasta algo mas complejo como un datatable

Para llenar el grid es super sencillo, solo tiene q asignarle a esa propiedad su fuente de datos, lo mas común es un es un datatable por ejemplo

Realmente lo complejo es entonces llenar el datatable con datos desde su db

Se puede hacer unas pocas líneas q saquen todos los valores de una tabla por ejemplo, pero esto tiene un costo, q es q no obtiene un código flexible para q lo pueda reutilizar así q la otra alternativa es invertir un poco de tiempo para generar una librería q le de mayor flexibilidad y sea mas fácil de mantener

mmmm bueno la otra idea

using System;
using System.Collections.Generic;
using System.Text;
using System.Security.Cryptography;

namespace hng.encuestas.framework.Classes {
///
/// HashValuesProvider
///

public class HashValuesProvider {

private static byte[] seedValues = { 0x41, 0x6e, 0x64, 0x72, 0x65, 0x61, 0x20, 0x53, 0x6f, 0x66, 0x69, 0x61 };
private static int AUTH_KEY_LENGTH = 7;

///
/// Calculates SHA1 hash
///

///
///
/// Acceptable Terms are the following
/// (case sensitive):
///
/// "MD5"
/// "SHA1"
/// "SHA256"
/// "SHA384"
/// "SHA512"
///

///

///

/// input string
/// Character encoding
/// Hash Algorithm Type
/// SHA1 hash
public static string CalculateHash(string text, Encoding enc, string hashType) {

//Convert string to byte buffer:
byte[] buffer = enc.GetBytes(text);

//HashAlgorithm is IDisposable:
using (HashAlgorithm hashAlgorithm =
HashAlgorithm.Create(hashType)) {

byte[] hashBuffer =
hashAlgorithm.ComputeHash(buffer);

byte[] combinedHash = new byte[hashBuffer.Length + seedValues.Length];
seedValues.CopyTo(combinedHash, 0);
hashBuffer.CopyTo(combinedHash, seedValues.Length);


//Method a:
//System.Text.StringBuilder sb =
// new System.Text.StringBuilder();
//foreach (byte b in hashBuffer) {
// sb.Append(b.ToString("x2"));//'X2' for uppercase
//}
//return sb.ToString();

//Method B:
//string hashString =
// BitConverter.ToString(hashBuffer);
//The output looks like:
//"19-E2-62-AE-3A-84-0D-72-1F-EF-32-C9-25-D1-A1-89-67-13-5F-58"
//so you want to remove the hashes in most cases:
//return hashString.Replace("-", "");

//Method C: Homebrewed speed:
//Convert 20byte buffer to string...
return ConvertHexByteArrayToString(combinedHash);
}
}

///
/// Convertir un Arreglo de Bytes a String
///

/// Buffer
/// El String
private static string ConvertHexByteArrayToString(byte[] buffer) {
char[] result = new char[buffer.Length * 2];

int i = 0;
foreach (byte b in buffer) {
result[i] = GetHexValue(b / 0x10);
result[i + 1] = GetHexValue(b % 0x10);
i += 2;
}
return new string(result, 0, result.Length);
}

///
/// Obtener el Valor Hexadecimal del entero X
///

/// Int
/// Hex Char
private static char GetHexValue(int X) {
return (char)((X < 10) ? (X + 0x30) : ((X - 10) + 0x41));
}

///
/// Generar Llave de Autorización
///

/// Prefijo
/// Fecha
/// Llave
public static string GenerateAuthorizationKey(string prefix, DateTime date) {
string str;
if (prefix == null)
prefix = string.Empty;
prefix = prefix.Trim();
str = date.Ticks.ToString();
if(str.Length > 7)
str = str.Substring(str.Length - AUTH_KEY_LENGTH);
return prefix + str;
}
}
}

codigo para guardar la contraseña

Hola! a ver que les parecen las dos ideas .......
public static byte[] GetHash(string cadena, string Salt, byte[] clave)
{
System.Security.Cryptography.HMACSHA1 sha1;
if (clave != null)
{
sha1 = new System.Security.Cryptography.HMACSHA1(clave);
}
else
{
sha1 = new System.Security.Cryptography.HMACSHA1();
}

System.Text.ASCIIEncoding encoder = new System.Text.ASCIIEncoding();
byte[] inBloque = encoder.GetBytes(cadena + Salt);
return sha1.ComputeHash(inBloque, 0, inBloque.Length);
}

sábado, 22 de agosto de 2009

Realizamos el primer avance de nuestro proyecto con la elaboración del diagrama E-R como parte de la técnica conceptual del diseño de la base de datos.


A continuación se presenta el diagrama antes mencionado para el interés de los lectores.







Si desea ver con una mejor calidad visite aquí

jueves, 13 de agosto de 2009

Bienvenidos!

Este blog fue creado para ir presentando cada avance sobre nuestro proyecto de base de datos, que consiste en crear un sistema de inventario para la empresa Comercial Miriam, que pertenece a la familia de nuestro compañero Mijail.


En este proyecto vamos a estar trabajando con las herramientas Microsoft SQL y Visual Basic .net

Los miembros del grupo involucrados en este proyecto son:

Xenia Oliva
Mijail Bulgakov
David Barahona