C sharp - Problemas al obtener campos

 
Vista:
sin imagen de perfil
Val: 4
Ha aumentado su posición en 2 puestos en C sharp (en relación al último mes)
Gráfica de C sharp

Problemas al obtener campos

Publicado por Jose (1 intervención) el 21/11/2018 23:31:45
Estaba tratando de hacer un login con una base de datos de access, cree la base con un solo registro y me funciono la validacion, pero al agregar a la base otro registro, el ultimo no me funciona

Sucede que me aparece la excepcion "There is no row at position 0", con el primer registro no aparece esta excepcion, solamente con el segundo.

Intente contar las filas cada vez que hago la consulta, cuando utilizo el primer registro, me aparece 1 fila, cuando utilizo el segundo registro, aun estando todo correctamente, me aparecen 0 filas.

He buscado por todos lados y en ninguno encuentro la respuesta a este problema, aun asi, tambien me puede servir si hay otra forma de obtener registros a voluntad. Muchas gracias de antemano a todos el que se tome su tiempo para responderme.

Este seria el codigo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
Private void btn_click(object sender, EventArgs)
{
 
String cuenta, clave, nombre;
 
String query = string.Format(" select * from tb_empleado where nmusuario='{0}' and contrasena='{1}' ", tbxusuario.text, tbxpass.text)
 
OleDbConnection conx = new OleDbConnection(" Provider=Microsoft.ACE.OLEDB.12.0;Data Source=[el enlace xd]");
 
conx.open
DataSet ds = new DataSet();
 
OleDbDataAdapter odp = new OleDbDataAdapter(query, conx);
 
odp.Fill(ds);
 
cuenta = ds.Tables[0].Rows[0]["nmusuario"].toString().Trim();
 
clave = ds.Tables[0].Rows[0]["contrasena"].toString().Trim();
 
nombre = ds.Tables[0].Rows[0]["nmempleado"].toString().Trim();
 
if( cuenta == tbxusuario.text && clave == tbxpass.text)
{
 Messagebox.Show("bienvenido");
}
Else
{
Messagebox.show("acceso denegado");
}
 
 
}

Este es el codigo...

La tabla contiene
Id
nmempleado
apellido
nmusuario
contrasena

Muchas gracias nuevamente
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
1
Responder

Problemas al obtener campos

Publicado por kingk (14 intervenciones) el 22/11/2018 05:42:43
Hola, creo que siendo tu objetivo validar el ingreso consultando un registro de tu tabla lo ideal seria usar un command, un dataset y un dataadapter seria mas apropiado para cargar una cantidad mas grande de registros.
La forma de hacerlo es mas simple y seria asi:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
Private void btn_click(object sender, EventArgs)
{
 
String cuenta, clave, nombre;
 
String query = string.Format(" select * from tb_empleado where nmusuario='{0}' and contrasena='{1}' ", tbxusuario.text, tbxpass.text)
 
OleDbConnection conx = new OleDbConnection(" Provider=Microsoft.ACE.OLEDB.12.0;Data Source=[el enlace xd]");
 
conx.open //
OledbDataReader dr;
 
OledbCommand cmd=new OleDbCommand(query, conx);
 
dr=cmd.ExecuteReader();
 
if( dr.HasRows())
{
Messagebox.Show("bienvenido");
}
Else
{
Messagebox.show("acceso denegado");
}
dr.Close();
conx.Close();
 
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar