Ayuda - guardar historial de lo que hace un usuario [C#]

Iniciado por crifesma, 1 Septiembre 2010, 17:08 PM

0 Miembros y 1 Visitante están viendo este tema.

raul338

Cita de: crifesma en  1 Septiembre 2010, 22:22 PM
realmente no entiendo. como puse antes le asigno acada usuario un una identificacion en este caso usuario1 o usuario2 con el if.

lo que no se es que cuando quiera guardar el registro de la actividad como saber quien activo el boton el usuario 1 o el usuario2, estoy muerto con eso :P.
..............
quisiera saber para ti cuales son las base de la programacion, para mi es tener la logica y entender como funciona las ordenes y lo que busco de cada una

Ahi te estas contradiciendo con esto! :xD

Mira, dices que tienes que diferenciarlo, bueno, entonces agrega un criterio!!!! Agrega un "if" para saber si es el usuario1 o 2 y si esta conectado a tal lugar o tal otro (no se como sea la logica del programa, por eso soy taan generico, por mas que me des el codigo no leere todo, simplemente te doy la logica, tu te encargas de plasmarla)

Tu como haces para saber si entro usuario1 o usuario2 ? De la misma forma tienes que hacer para guardar el historial :P

crifesma

#21
Cita de: raul338 en  1 Septiembre 2010, 22:43 PM
Cita de: crifesma en  1 Septiembre 2010, 22:22 PM
realmente no entiendo. como puse antes le asigno acada usuario un una identificacion en este caso usuario1 o usuario2 con el if.

lo que no se es que cuando quiera guardar el registro de la actividad como saber quien activo el boton el usuario 1 o el usuario2, estoy muerto con eso :P.
..............
quisiera saber para ti cuales son las base de la programacion, para mi es tener la logica y entender como funciona las ordenes y lo que busco de cada una

Ahi te estas contradiciendo con esto! :xD

Mira, dices que tienes que diferenciarlo, bueno, entonces agrega un criterio!!!! Agrega un "if" para saber si es el usuario1 o 2 y si esta conectado a tal lugar o tal otro (no se como sea la logica del programa, por eso soy taan generico, por mas que me des el codigo no leere todo, simplemente te doy la logica, tu te encargas de plasmarla)

Tu como haces para saber si entro usuario1 o usuario2 ? De la misma forma tienes que hacer para guardar el historial :P
si eso lo entiendo pero si sera tan facil :p
si fuera así, perdí el tiempo un rato.
ojala y funcione.

gracias

.mokk.

#22
Eso es lo que decia y como dicen los demas porque usas 2?, porque no nomas 1 ?
Entonces al loguearte si es correcto los datos que guarde el usuario en una variable y ya al usar el codigo de "INSERT" ahi pones la variable nose si me explico
Sino aqui te dejo un ejemplo

Código (VB.NET) [Seleccionar]

Dim da as new sqldataadapter
Dim dt as new datatable
dim comando as string
'Rellenar con tu codigo de conexion
dim conexion as string = ""

public sub login
comando = "Select * from Login where Usuario='" + form1.user.text + "' and password='" + form1.contraseña.text + "'"
da = new sqldataadapter(comando,conexion)
da.fill(dt)
form1.datagridview1.datasource = dt

if form1.datagridview1.rows.count = 2 then
'Logueado
form2.show
me.hide
else
msgbox("Error No se a podido loguear revisa los datos")
end if

end sub

public sub historial(byval log as string, byval fecha as string)
comando = "INSERT INTO Historial (Usuario, Accion, Fecha) VALUES ('" + form1.user.text + "', '" + log + "', '" + fecha + "')"
da = new sqldataadapter(comando,conexion)
da.fill(dt)
da.update(ctype(dt,datatable))
end sub


Y ya solamente lo llamas desde lo necesites y tmb si deceas que si uno esta lgueado y el otro intenta entrar puedes hacer algo asi

Código (vb.net) [Seleccionar]

Dim da as new sqldataadapter
Dim dt as new datatable
dim comando as string
'Rellenar con tu codigo de conexion
dim conexion as string = ""

public sub login
comando = "Select * from Login where Usuario='" + form1.user.text + "' and password='" + form1.contraseña.text + "'"
da = new sqldataadapter(comando,conexion)
da.fill(dt)
form1.datagridview1.datasource = dt

if form1.datagridview1.rows.count = 2 then
'Logueado
'datagridview1(0,4) es 0 = la fila que seria la primera y 4 igual a la columna
'Que pense que eran estas ID, Usuario,Password, Conectado esas son las columnas que pense que podras tener
'Bueno espero te sirva ^^
if form1.datagridview1(0,4).value.tostring = "1" then
msgbox("Ya hay alguien logueado con esta cuenta")
exit sub
else
loginz()
end if

form2.show
me.hide
else
msgbox("Error No se a podido loguear revisa los datos")
end if

end sub

private sub loginz()
comando = "UPDATE Login set conectado = '1' where usuario ='" + form1.user.text + "'"
da = new sqldataadapter(comando,conexion)
da.fill(dt)
da.update(ctype(dt,datatable))
end sub

'Este lo inicias cuando se este cerrando el programa
private sub desloguear
comando = "UPDATE Login set conectado = '0' where usuario ='" + form1.user.text + "'"
da = new sqldataadapter(comando,conexion)
da.fill(dt)
da.update(ctype(dt,datatable))
end sub

crifesma

muchas gracias a todo :).

tendré muy encenta todo lo que me dijeron.

moderador en muchas cosas tenes razón en otras no tanto. espero que no me veas como el rebelde :P.

voy a ver que hago.

raul338

Cita de: crifesma en  1 Septiembre 2010, 22:57 PM
si eso lo entiendo pero si sera tan facil :p
si fuera así, perdí el tiempo un rato.
ojala y funcione.

Pero si es facil :/ no veo la complicacion :P

mokk te puso una version ligera en vb.net :)

[D4N93R]

No discuto la razón acá , simplemente te comparto mis experiencias :)

Un saludo y con respecto a:
Código (csharp) [Seleccionar]
comando = "Select * from Login where Usuario='" + form1.user.text + "' and password='" + form1.contraseña.text + "'"
Es susceptible a Sql Injection. Yo he visto a usuarios de administración haciendo queries xD se los juro!

crifesma

d4n93r.

en la parte del codigo que me dijiste falta algo como

query.ExecuteNonQuery();

creo.

y con respecto a lo de algo repetitivo, me imagino que hablas de crear clases y funciones, agregarlas al form con using y invocar cada funcion.

tienes muca razon con lo del sql injection.

gracias por los consejos.

[D4N93R]

Puedes crearte una clase estática llamada UserManagement o algo así, y otra clase User.. Por ahí va el tiro..

:)

.mokk.

Cita de: [D4N93R] en  1 Septiembre 2010, 23:16 PM
No discuto la razón acá , simplemente te comparto mis experiencias :)

Un saludo y con respecto a:
Código (csharp) [Seleccionar]
comando = "Select * from Login where Usuario='" + form1.user.text + "' and password='" + form1.contraseña.text + "'"
Es susceptible a Sql Injection. Yo he visto a usuarios de administración haciendo queries xD se los juro!

Si, pero para que haria algo asi si solo son 2 personas la que lo manejan, aunque si lo decea antes de eso al pulsar el boton puede verificar lo que introdujo y asi hacer un antisql

Yo por ejemplo asi lo uso pero solamente las computadoras que e colocado pueden usar el programa un tipo de HWID que al iniciar antes del login verifica que la PC tenga admision a usar el programa jeje asi tengo usuarios confiables que la puedan usar

Pero nunca esta demas un pequeño codigo para AntiSql jeje