|
Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.
Mensajes - robbie110487
26
« en: Lunes 7 de Mayo de 2007, 22:28 »
Gracias por la info me sirvio de mucho, pero al final use esto: ' Función para comprobar si el acceso es correcto Private Function ComprobarUsuario(ByVal usuario As String, ByVal contrasena As String) As Boolean ' Conectar a la base de datos Dim cnn As SqlConnection = Nothing Try cnn = New SqlConnection(Me.SqlDataSource1.ConnectionString) cnn.Open() ' Definir la cadena que vamos a usar para comprobar ' si el usuario y el password son correctos. ' Utilizo parámetros para evitar inyección de código. Dim sel As New System.Text.StringBuilder ' Usando COUNT(*) nos devuelve el total que coincide ' con lo indicado en el WHERE, ' por tanto, si la clave y el usuario son correctos, ' devolverá 1, sino, devolverá 0 sel.Append("SELECT COUNT(*) FROM Empleados ") sel.Append("WHERE usuario = @usuario AND contrasena = @contrasena") ' Definir el comando que vamos a ejecutar Dim cmd As New SqlCommand(sel.ToString, cnn) ' Creamos los parámetros cmd.Parameters.Add("@usuario", SqlDbType.NVarChar, 16) cmd.Parameters.Add("@contrasena", SqlDbType.NVarChar, 16) ' Asignamos los valores recibidos como parámetro cmd.Parameters("@usuario").Value = usuario cmd.Parameters("@contrasena").Value = contrasena ' Ejecutamos la consulta ' ExecuteScalar devuelve la primera columna de la primera fila ' por tanto, devolverá el número de coincidencias halladas, ' que si es 1, quiere decir que el usuario y el password son correctos. Dim t As Integer = CInt(cmd.ExecuteScalar) ' Cerramos la conexión cnn.Close() ' Si el valor devuelto es cero ' es que no es correcto. If t = 0 Then Return False End If 'Capturamos una excepcion por si hay error en la conexion Catch ex As Exception lblError.Text = "Error " & ex.Message Return False Finally 'Si la conexion esta cerrada, la destruimos If Not cnn Is Nothing Then cnn.Dispose() End If End Try ' Si llega aquí es que todo ha ido bien Return True End Function
Y luego mando llamar a la funcion asi: Protected Sub Login1_Authenticate(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.AuthenticateEventArgs) Handles Login1.Authenticate If ComprobarUsuario(Login1.UserName, Login1.Password) = True Then e.Authenticated = True Else e.Authenticated = False End If End Sub
Me va de maravilla, saludos y gracias a los 2
27
« en: Sábado 5 de Mayo de 2007, 08:07 »
Hola, estoy realizando una aplicacion de practica para la empresa donde estoy actualmente, tecnicamente ya la he terminado, solo quisiera que me ayudaran con el sistema de logueo, cual es la mejor forma de hacerlo? con el control login? o con textbox y botones aparte??. ya puse el control login y lo he personalizado y tmb hice la coneccion mediante un data source, ahra quisiera saber que comando utilizar para comparar usuario y password en una tabla de una base de datos que tengo en SQL SERVER 2005, cualquier ayuda es bien recibida.
Por cierto utilizo Microsoft Visual Studio 2005 Proffessional y como lenguaje Visual Basic
SAludos
28
« en: Lunes 11 de Septiembre de 2006, 00:08 »
Opino algo similar a Max_D ya que tu codigo me compilo en el minGW (Bajo dev c++) sin ningun problema (excepto el de conio pero eso no es importante), realmente no se que pueda pasar amigo, cambia de compilador :S
Si de plano no te funciona lo que podrias hacer es declarar la funcion tipo int, y que te reorne 1 si es verdadero y 0 si es falso o algo asi...
Saludos
29
« en: Domingo 10 de Septiembre de 2006, 22:22 »
Creo que ya analizando el codigo encontre el error, mira en esta parte: void agregar(); void crear(); void eliminar(); void imprimir();
estas declarando todas las funciones menos la boolean, agregala por ahi a ver si es eso, algo asi: void agregar(); void crear(); void eliminar(); void imprimir(); bool vacia();
Saludos
30
« en: Domingo 10 de Septiembre de 2006, 09:40 »
Por favor pon el error que te da, como no tengo nada que hacer lo compile y me dio este: main must return int que por lo visto no es el mismo que te da a ti, supongo que usaras algun compilador de borland, a mi con el minGW me compilo bien solo en la linea la cambie por y coloce un al final de la funcion, por lo demas no me dio error. Saludos
31
« en: Domingo 10 de Septiembre de 2006, 09:33 »
Hola, mira pueden ser 2 cosas (o mas que se me esten pasando jeje) 1.- Debido a que bool es esclusivo de c++, es decir no existe en C verifica que el compilador que uses soporte c++ y que el archivo sea .cpp (esta es la menos probable). 2.- La otra es: recuerda que es una funcion, esta debe ir fuera de otras funciones, hasta de main ok, quedaria algo mas o menos asi: (fue lo primero que se me ocurrio es solo un ejemplo) #include<stdio.h> int* estudiante; bool vacia() { if(estudiante=NULL) return true; else return false; } int main() { vacia(); getchar(); return 0; }
Saludos
32
« en: Lunes 14 de Agosto de 2006, 00:14 »
O algo asi se me hace mucho mas facil, mira agrega un label y un timer, y cambia la propiedad de interval de ltimer a 1000 Dim x As Byte Private Sub Form_Load() x = 10 End Sub Private Sub Timer1_Timer() If x = 0 Then Exit Sub Label1.Caption = x x = x - 1 End Sub
Saludos
33
« en: Sábado 1 de Julio de 2006, 20:19 »
Pues en tu post yo nomas veo dos errores, uno de ortografia y otro en el codigo  jeje el error es aqui: printf("GET /cgi-bin/Count.cgi?%s\n\n",qs);
Primero que nada, ¿Sabes que hace el programa o para que sirve? salu2
34
« en: Miércoles 21 de Junio de 2006, 07:18 »
 Si quieres que se un dialogo, crea una clase que herede de JDialog y la disenas que quede similar al JOptionPane.showInputDialog solo cambiaz el JTextField por JPasswordField, es lo que yo haria salu2
35
« en: Sábado 10 de Junio de 2006, 18:32 »
Asi es, exactamente como lo has definido, puedes usar cualquiera de las 2, pero en caso de que no sea anonima, puedes usar el nombre de la estructura o el alias...
36
« en: Sábado 10 de Junio de 2006, 17:44 »
El primer codigo corresponde a una estructura anonima que puede utilizarse a traves de su typedef Ejemplo: typedef struct {double re, im; } COMPLEX; ...... COMPLEX c, *ptrc, arrc[10]
Y en el segundo codigo estas poniendo nombre a la estructura al mismo tiempo que se declara el typedef Ejemplo: typedef struct C1 {double re, im;} COMPLEX; ... C1 c, *ptrc; COMPLEX Arrc[10];
Aunque no es usual utilizar el alias y el nombre simultaneamente. Fuente y para mas info sobre typedef : http://www.zator.com/Cpp/E3_2_1a.htmUn saludo
37
« en: Viernes 9 de Junio de 2006, 21:20 »
Me alegro que ya lo hayas solucionado, es mas acabo de leer el topic que mencionas donde ROBER.29 ayuda a bea en exactamente lo mismo, y hace mension de que si no tienes la libreria cdonts.dll le mandaras un MP y el te la enviaba, justo te iba a recomendar que le pidieras, si seguias sin poder enviar el MP yo lo hubiera hecho y te la enviaba por correo. Veo que eres nuevo y acostumbrate un poco a las discusioes, espero sigas apoyando en el foro que si hace falta gente, ya que como lei en otro foro, la regla es venir pedir ayuda y no volver a postear hasta el siguiente problema... espero no sea tu caso y no dejes que una pequena discusion te aleje del foro, no todos somos iguales... Saludos desde Tamaulipas Mexico
38
« en: Jueves 8 de Junio de 2006, 18:58 »
jeje, asi es el x.cyclop lo conozco en 3 foros  , pero en parte tiene razon, por cierto has tratado de hacer lo que dice el link del msdn?? Causa Este problema se produce porque utiliza DLL de Outlook Express CDOSYS, y CDONTS y CDOEX para cargar la información de configuración CDOSYS, y CDONTS y CDOEX. Volver al principio
Solución Para resolver este problema, siga estos pasos: 1. Instale Outlook Express si no se instala todavía. Para ello, siga estos pasos: a. En Panel de control, haga clic en Agregar o quitar programas. b. Haga clic en Internet Explorer y a continuación, seleccione Outlook Express como se instala el componente. 2. Si Outlook Express ya está instalado en su equipo y si recibe uno de los errores mencionados en la sección "Síntomas" de este artículo, siga estos pasos: a. Quite Internet Explorer de su equipo.
También esto quita Outlook Express. b. Reinstale Internet Explorer. Durante instalación, seleccione instalar Outlook Express. 3. Si recibe los errores mencionados en la sección "Síntomas" de este artículo después de que instala o después de que reinstala Internet Explorer y Outlook Express, siga estos pasos: • En un equipo que ejecuta Windows 2000, ejecute los comandos siguientes en un símbolo del sistema para registrar Cdonts.dll y Cdosys.dll:
"\WINNT\System32\CDOSYS.dll regsvr32 \WINNT\System32\CDONTS.dll "regsvr32"" • Ejecutado el comando siguiente en un símbolo del sistema de registrar Cdonts.dll:
"\WINNT\System32\CDONTS.dll" regsvr32 • En un equipo que ejecuta Windows XP o Windows Server 2003, ejecute el comando siguiente en un símbolo del sistema para registrar Cdosys.dll:
"\WINDOWS\System32\CDOSYS.dll" regsvr32 • En un equipo que ejecuta Microsoft Exchange 2000 Server, Exchange Server 2003, Microsoft Sharepoint Portal Server o Microsoft Sharepoint Team Services, ejecute el comando siguiente en un símbolo del sistema para registrar Cdoex.dll:
"\Program Files\Common Files\Microsoft Shared\CDO\CDOEX.dll" regsvr32 si es asi te sigue marcando algun error?? Un saludo  PD: Aqui tienes un link directo para un mensaje privado a ROBER.29 MP a ROBER.29Solo es cuestion de ver los botones del foro
39
« en: Jueves 8 de Junio de 2006, 00:00 »
Claro que si cybregatita, antes nada debes entender que es el factorial de un numero, se puede definir como el producto de todos los números naturales anteriores o iguales a él. Se escribe n!, y se lee "n factorial". (Por definición el factorial de 0 es 1: 0!=1) #include<stdio.h> //Libreria para printf() y scanf() #include<stdlib.h> //Libreria para system() /**Funcion factorial, recibe un entero con punto flotante*/ float factorial(float N) { if (N == 0) return 1; //Si N es igual a 0 retorna el numero 1 //(porque el factorial de 0 es 1) else //de lo contrario //retorna la multiplicacion de N por el factorial de N-1 //Si te fijas la funcion es llamada hasta que el factorial se igual a 0 o //mejor dicho a 1 return N*factorial(N-1); } /*Funcion principal*/ int main () { float N; printf("\n CALCULO DE FACTORIALES \n"); printf("\nIntroduzca un numero entero:\n"); scanf("%f", &N); //Aqui se pide el numero printf("\El Factorial es %f", factorial(N)); //Aqui se llama a la funcion system("pause"); //lo agregue para hacer una pausa return(0); //lo modifique porque no me compilaba }
Cualquier duda postea Pd. lo modifique un poco, pero en si sigue siendo el mismo codigo
40
« en: Miércoles 7 de Junio de 2006, 07:25 »
Jugar?? Sabes, yo creo te refieres al editor que trae el compilador freepascal, que senala la sintaxis y la colorea como tu dices, lo encuentras aqui: FREE PASCALUn saludo
41
« en: Lunes 5 de Junio de 2006, 01:03 »
La verdad no se, las unica diferencia que yo conozco entre scanf() y gets(), es que scanf() es entrada con formato: char *gets(char *cadena);
Esta función lee caracteres desde el stream apuntado por stream stdin, en el array apuntado por cadena, hasta que se encuentre un final de fichero (EOF) o un carácter de línea nueva es leído. Cualquier carácter de línea nueva es descartado, y un carácter nulo es escrito inmediatamente después del último carácter leído en el array. int scanf(const char *formato, ...);
Esta función es equivalente a fscanf con el argumento stdin interpuesto antes de los argumentos a scanf.
fscanf Esta función recibe datos del stream apuntado por stream, bajo el control de la cadena apuntada por formato que especifica las secuencias de entrada permitadas y cómo han de ser convertidas para la asignación. Si hay argumentos insuficientes para el formato, el comportamiento no está definido. Si el formato termina mientras quedan argumentos, los argumentos restantes son evaluados (como siempre) pero ignorados. La función retorna control cuando el final de la cadena de formato es encontrado. Fuente http://c.conclase.comTmb see que scanf solo lee una cadena hasta que encuentra un espacio a diferencia de gets()... Un saludo
42
« en: Domingo 4 de Junio de 2006, 21:07 »
Hola, ese codigo esta bien, el error esta cuando limpias el buffer de entrada, la sentencia correcta es el codigo deberia quedar asi: #include <stdio.h> #include <windows.h> typedef int integer; typedef char string[255]; int main() { integer num; string cadena; printf("Introduce un numero: "); scanf("%i",&num); printf("Introduce un mensaje: "); fflush(stdin); gets(cadena); printf("El numero introducido es %i",num); printf("\nEl mensaje introducido fue %s\n\n",cadena); system("pause"); return 0; }
Compilalo asi y veras que va de maravilla... Un saludo
43
« en: Domingo 4 de Junio de 2006, 06:56 »
Querras decir: indica hacer las cosas mientras el caracter obtenido sea diferente a un salto de linea Saludos
44
« en: Domingo 4 de Junio de 2006, 06:53 »
Claro que gets() es standar, se encuentra en la liberia stdio.h y lee caracteres desde el stream apuntado por stream stdin, en el array apuntado por cadena, hasta que se encuentre un final de fichero (EOF) o un carácter de línea nueva es leído... no la confundas con getch() o getche() de la libreria no standar conio.h Un saludo
45
« en: Sábado 3 de Junio de 2006, 22:25 »
Encontre esta, pero en c++ y es de 20 a 100, ya solo tienes que pasarla a c, no es dificil #include<iostream> #include<iomanip> using namespace std; int main() { cout<<"Numeros primos entre 20 y 100:"<<endl; int i; for(int n=23; n<100; n++) { for(i=2; n%i; i++); if(i==n) cout<<setw(4)<<n; } cout<<endl; cin.get(); return 0; }
46
« en: Sábado 3 de Junio de 2006, 06:19 »
De cuantos segundos de demora estamos hablando?? y que tan grande es el codigo que quieres compilar??, si vas a herramientas/opciones del compilador encontraras algunas opciones de optimizacion y rendimiento, solo es cuestion de verlas y revisarlas
un saludo
47
« en: Viernes 2 de Junio de 2006, 03:30 »
Todo va perfecto, solo que tiene un "error" (que no es exactamente error)  , lo comprobe con este programa: #include<stdio.h> #include<stdlib.h> int main() { float a,b; int op; fflush(stdin); printf("Ingresa dos numeros: "); scanf("%f %f",&a,&b); // aqui quite la coma pero deje un espacio entre "%f" y "%f" printf(" Elige la operacion que deseas realizar\n\n"); printf(" 1. Suma\n"); printf(" 2. Resta\n"); printf(" 3. Multiplicacion\n"); printf(" 4. Division\n"); printf(" 5. Salir\n\n"); printf(" ¿Que operacion deseas realizar?(1-5): "); scanf("%i",&op); printf("\nEl primer numero es: %f\n",a); printf("El segundo numero es: %f\n",b); printf("Y seleccionaste la opcion numero: %i\n",op); system("pause"); }
Espero sigas asi y continues con tu proyecto Un saludo
48
« en: Viernes 2 de Junio de 2006, 03:13 »
La funcion Sleep() (no sleep()) se encuentra en la libreria windows.h
Saludos
49
« en: Jueves 1 de Junio de 2006, 22:49 »
Claro que si esa linea limpia el buffer del teclado Un saludo
50
« en: Domingo 7 de Mayo de 2006, 08:05 »
eso de while(frac<5) esta mal condicionado, en dado caso seria y ni asi cumple con la condicion, que tal si teclea 1 o 0 , mejor que lo haga con varios if, o en su defecto con un switch, asi solo pondria switch(frac) { case frac:2 sumardosfracciones; break; case frac:3 sumartresfracciones; break; case frac:4 sumarcuatrofracciones; break; case frac:5 sumarcincofracciones; break; case frac:default mostrarmensajedeerror; }
salu2
|
|
|