Si vas a copiar

.. y pegar este post en tu web o blog personal, por favor te pido que coloques el link del post de donde lo copiastes:

Fuente:

Sistema de login en C# con Access 2007

22 de agosto de 2010 35 comentarios:
He mejorado un poco el sistema y ademas lo puedes descargar como archivo de proyecto para VS2010

Sistema de login

Es facil de usar solo tienes que configurarlo dependiendo de como tengas la base de datos de los usuarios

NUEVO: agregada opcion de encriptacion de contraseña con Bcrypt

La contraseña de la base de datos login.accdb es: test

Ejecuta el proyecto pero modo Debug ya que la base de datos login.accdb esta en el directorio Debug e introduce estos datos:


Usuario: prueba
Contraseña: 5555

El codigo esta documentado


ACTUALIZADO 11/11/12


Publicado en tttony.blogspot.com

Publicar un comentario

35 comentarios:

Krusnik-02 dijo...

Excelente aporte solo me queda una duda... esque resulta que en mi caso igual utilizo una BD access 2007... pero en la parte donde lleno el datatable que en tu caso es da.Fill(ds) me genera un error en esta parte

OleDbDataAdapter access = new OleDbDataAdapter(sql, conexion);

LoginDataSet ds = new LoginDataSet();

access.Fill(ds);

if (ds.Table[0].Rows.Count == 1)
{
Login log = new Login();
log.Show();

this.Close();

me dice que mi DataSet no contiene una definicion para Table.. y no se que hacer espero me puedas ayudar... ya soy muy novato en esto jeje

tttony dijo...

Krusnik-02: en tu codigo la variable ds es instanciada de la clase LoginDataSet() dicha clase no contiene el metodo Table y es por eso que arroja el error

Mi codigo es mas generalizado no es necesario usar tus propios DataSets hazlo tal cual lo tengo en mi codigo y cambia en la variable sql el nombre de la tabla y campos que corresponda con las que hayas creado en tu base de datos:

string sql = String.Format("SELECT * FROM TU_TABLA_DE_USUARIOS_AQUI WHERE username = '{0}' AND password = '{1}'", txtUsername.Text, GetMD5Hash(txtPassword.Text));

Saludos

Oswaldo Requeno dijo...

bueno saludos antes qe nada solo queria agradecerte por el cod es de mucha ayuda pero a mi me da un error aca: access.Fill(ds);

me dice que no se pudo controlar OlDbException y luego dice esto:

El motor de base de datos de Microsoft Office Access no puede abrir o escribir en el archivo 'C:\Documents and Settings\Waldo\Escritorio\Sistema_Bodega'. Está abierto en modo exclusivo por otro usuario o bien necesita permiso para ver sus datos o escribir en el archivo.

ojala me puedas ayudar a descubrir mi error sera de gran ayuda gracias!!!

tttony dijo...

Que tal Oswaldo, dusculpa la demora pero creo que ya lo haz solucionado

Ese error lo muestra cuando tienes abierta la base de datos en modo Diseño

Solo cierra el modo diseño y ya no te mostrara el error

Saludos

Unknown dijo...

Hola, espero me puedas ayudar esq soy novato en esto y A mi me da el siguente error. No se controlo OleDbExeption. El motor de base de datos de microsoft office access no puede encontrar la tabla o consulta de entrada 'users'. Asegúrese de que existe y que su nombre está escrito correctamente. Gracias espero tú respuesta.

Unknown dijo...

Bueno estuve borrando y poniendo y estoy fue lo que obtuve... En donde pusiste configurar estas variables a tú gusto, las cambie según el orden de mi base de datos, y ahora me presenta este error, bueno al igual que el error anterior me señala el da.Fill(ds); y me dice el error: no se encontró OleDbException, no se han especificado valores para algunos de los parámetros requeridos... Y está vez no se que cambiar jaja si está mal lo que he hecho me lo haces saber para poder volver a cargar tú archivo... Jaja gracias

Unknown dijo...

Bueno estuve borrando y poniendo y estoy fue lo que obtuve... En donde pusiste configurar estas variables a tú gusto, las cambie según el orden de mi base de datos, y ahora me presenta este error, bueno al igual que el error anterior me señala el da.Fill(ds); y me dice el error: no se encontró OleDbException, no se han especificado valores para algunos de los parámetros requeridos... Y está vez no se que cambiar jaja si está mal lo que he hecho me lo haces saber para poder volver a cargar tú archivo... Jaja gracias

tttony dijo...

EDO SOLANO, disculpa pero olvida ese codigo, he actualizado el proyacto, asi que intenta con este nuevo y me dices

Saludos

Unknown dijo...

ok gracias voy a probar....pero cual es la contraseña del archivo de access??? esq intente abrir el archivo por aparte y me pide contraseña.

Unknown dijo...

Gracias, voy a probar, pero cual es la contraseña para abrir el archivo de access...??

Unknown dijo...

Bueno cuando habilitó el públic string databasepath= @"database/login.accdb", me manda un error, dice ambigüedad entre 'login.loginclass.databasepath'

tttony dijo...

La contraseña es: test

Estas haciendo las pruebas con este proyecto o tu proyecto?

Asi tal cual como esta, ejecuta el proyecto pero modo Debug ya que la base de datos login.accdb esta en el directorio debug

Unknown dijo...

Ok yo lo abro de la carpeta debug, y me sale el login administración, ahí le pongo test y 5555? O que pongo xq me sale usuario o contraseña invalida...y cuando abro el archivo de c# me nuestra 2 advertencias, dice se ha detectado código inaccesible y cuando le doy doble clic me manda al cmd...Y dime yo de ese código lo puedo modificar o agregar para que también pueda crear "usuarios"...! Gracias x tú atención...

tttony dijo...

El post lo actualice y estos son los detalles:

El proyecto esta hecho en Visual C# 2010
La contraseña para entrar al archivo login.accdb en Access 2007 es: test
Para probar la aplicacion ingresa esto:
Usuario: prueba
Contraseña: 5555

En cuanto al error del: "condigo inaccesible" no se que decirte, a mi me funciona perfecto, tienes el Visual Studio 2010?

Unknown dijo...

Ok, yo tengo visual studio que me imagino es C#,pero voy a probar eso que me dijiste gracias...

Unknown dijo...

Jaja ya pude tenías toda la razón. Gracias x el aporte

Unknown dijo...

Gracias me funcionó perfecto

Unknown dijo...

Hola, ocupo tú ayuda por favor, necesito encriptar de forma sencilla un número, con la función mod. Ejemplo pongo 2358 y y necesito el residuo de cada número dividido entre 7, debe mostrarse en un texbox el número de dígitos teclados para este caso son 4. Quedaría 4xxxx donde x es el residuo de cada número. Tengo este código string dato; dato=texbox1.text; char[] arreglo = dato.tocharArray(); for (int I=0; I<arreglo.length; I++) me puedes ayudar a completar el código esq creo que sólo eso tengo bien... Gracias espero tú ayuda

tttony dijo...

mm Creo que entendi mas o menos:

for (int I=0; I<arreglo.length; I++)
textBox2.Text = Convert.ToInt32(arreglo.ToString()) % 7;

Unknown dijo...

Hola, coloque lo que pusiste, pero me manda el siguiente error. "No se puede convertir implícitamente el tipo int en string...

tttony dijo...

Cierto cierto, lo estas presentando en un TextBox

for (int I=0; I<arreglo.length; I++)
textBox2.Text = (Convert.ToInt32(arreglo.ToString()) % 7).ToString();

Unknown dijo...

De igual forma, al darle ejecutar me manda el error :
textBox2.Text = (Convert.ToInt32(arreglo.ToString()) % 7).ToString(); eso lo pone en amarillo y dice "No se controlo FormatExeption
La cadena de entrada no tiene el formato correcto.... ¿¿¿¿¿????

tttony dijo...

oops!!!

cambia:

arreglo.ToString()

a

arreglo[l].ToString()

Unknown dijo...

Te cuento sí pongo 428 pone un 1 en el texbox2 de salida porque le saca el residuo de 8/7, está bien esa parte pero ocupo que en ese mismo instante le saqué el mod al 2 y al 4, y que el residuo quede en el mismo texbox2 y como hay 3 números debería quedar el 3xx1 donde x es el residuo de los otros números... Ojalá puedas arreglarme eso que quedé así...

tttony dijo...

Cierto:

textBox2.Text += (Convert.ToInt32(arreglo[l].ToString()) % 7).ToString();

Unknown dijo...

Excelente gracias...

Unknown dijo...

como ingresas un nuevo usuario con su respectiva contraseña?

Unknown dijo...

como agregas nuevos usuarios lo haces desde la base de datos directamente?

Unknown dijo...

como ingresas un nuevo usuario con su respectiva contraseña?

Anónimo dijo...

Hola, como ingreso un nuevo usuario en otro form?

tttony dijo...

Si, usa otro Form, voy a tener que editarlo pata agregar usuarios

Anónimo dijo...

Para agregar otro usuario, como le puedo hacer? ya sea en otro form o en el mismo? haz sido de gran ayuda.

tttony dijo...

Crea otro formulario, yo estoy por editarlo para crear usuarios, creo que esta semana lo subo

Anónimo dijo...

como puedo hacer para que en el formulario login me saque una contraseña de la base de datos y no sea una puesta en el programa directo

tttony dijo...

Usa la funcion Random(), aqui hay ejemplos --> http://stackoverflow.com/questions/1344221/how-can-i-generate-random-alphanumeric-strings-in-c

Buscar en el Blog



PUBLICIDAD